我从大气中安装了mrt:peity。我不确定数据是如何绑定的。从包文件中看起来好像在帮助器中期待数据/图表。但是当我做的时候我注意到了
Template.todolist.helpers({
todoitems: function(){
return Todolist.find({"status":{"$ne":"validated"}}, {data:1, chart:1})
}
});
它工作正常。但是当我做的时候
Template.todoitem.helpers({
data:function(){
return [moment().diff(this.ts,"days"),this.eta]
},
chart:function(){
return "pie"
}
})
它不再有效。任何人都可以帮忙吗?
编辑: 我不需要围绕{{peity}}(peity包)包裹todoitem模板。我认为它破坏了这种等级。如果我这样做,它会起作用
Template.todolist.helpers({
todoitems: function(){
return _.map(Todolist.find({}).fetch(), function(v, k){
return {chart:"pie", data:[moment().diff(v["ts"],"days"),v["eta"]], taskname:v["taskname"]}
})
答案 0 :(得分:0)
在看到让它发挥作用之前,您需要检查两件事:
第一个是投影需要放在fields
中。 (如果您需要这个。如果您使用它,其他字段将不起作用(如果您使用投影,ts
和eta
将被隐藏)
return Todolist.find({"status":{"$ne":"validated"}}, {fields:{data:1, chart:1}})
第二个是data
是保留关键字。你需要使用别的东西。您不能使用名为data
的帮助程序,因为它会与Blaze使用的内部数据上下文变量冲突。
查看您的代码很难说明您要做的事情。我假设你需要使用[moment().diff(this.ts,"days"),this.eta]
,你不需要fields
给出的预测:
some_other_word:function(){
return [moment().diff(this.ts,"days"),this.eta]
},
然后使用{{some_other_word}}
代替{{data}}