有没有办法从外部覆盖 meteor js helper
Is there a way to override meteor js helper from outside
我有模板grid_list
<template name="grid_list">
{{#each items}}
bla
{{/each}}
</template>
grid_list 帮手:
Template.grid_list.helpers({
items: function() {
return [1, 2, 3];
}
});
我从其他模板调用grid_list
{{> grid_list}}
我能否以某种方式将其他变量传递给 grid_list 以覆盖项目助手结果?
数据上下文优先于助手,因此您可以使用它来实现您想要的。
<template name="test">
{{> grid_list myDataContext}}
</template>
<template name="grid_list">
{{#each items}}
bla
{{/each}}
</template>
Template.test.helpers({
myDataContext: function () {
return {
items: [2, 5, 4, 6]
}
}
})
在items
帮助器中,您可以检查数据上下文是否包含数组,以及return 适当的值。例如:
<template name="test">
{{> grid_list myDataContext}}
</template>
<template name="grid_list">
{{#each items}}
<p>{{this}}</p>
{{/each}}
</template>
Template.test.helpers({
myDataContext: function () {
return {
items: [2, 5, 4, 6]
}
}
})
Template.grid_list.helpers({
items: function() {
data = Template.instance().data
if(data.hasOwnProperty('items')){
return data.items
}else{
return [1, 2, 3]
}
}
})
我有模板grid_list
<template name="grid_list">
{{#each items}}
bla
{{/each}}
</template>
grid_list 帮手:
Template.grid_list.helpers({
items: function() {
return [1, 2, 3];
}
});
我从其他模板调用grid_list
{{> grid_list}}
我能否以某种方式将其他变量传递给 grid_list 以覆盖项目助手结果?
数据上下文优先于助手,因此您可以使用它来实现您想要的。
<template name="test">
{{> grid_list myDataContext}}
</template>
<template name="grid_list">
{{#each items}}
bla
{{/each}}
</template>
Template.test.helpers({
myDataContext: function () {
return {
items: [2, 5, 4, 6]
}
}
})
在items
帮助器中,您可以检查数据上下文是否包含数组,以及return 适当的值。例如:
<template name="test">
{{> grid_list myDataContext}}
</template>
<template name="grid_list">
{{#each items}}
<p>{{this}}</p>
{{/each}}
</template>
Template.test.helpers({
myDataContext: function () {
return {
items: [2, 5, 4, 6]
}
}
})
Template.grid_list.helpers({
items: function() {
data = Template.instance().data
if(data.hasOwnProperty('items')){
return data.items
}else{
return [1, 2, 3]
}
}
})