mrt:peity如何绑定数据

时间:2015-04-15 16:07:20

标签: meteor meteor-helper atmosphere.js

我从大气中安装了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"]}
})

1 个答案:

答案 0 :(得分:0)

在看到让它发挥作用之前,您需要检查两件事:

第一个是投影需要放在fields中。 (如果您需要这个。如果您使用它,其他字段将不起作用(如果您使用投影,tseta将被隐藏)

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}}