2015-04-15 30 views
0

我安裝了mrt:peity from atmospherejs。我不確定數據是如何綁定的。從包文件看來,期望在幫助程序中的數據/圖表。但我注意到當我做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" 
} 
}) 

它不再起作用。任何人都可以幫助嗎?


編輯: 我不需要包裝的TodoItem模板周圍{{peity}}(peity包)。我認爲它打破了這個層次。

首先是預測需要放置在fields:如果我這樣做

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

事實證明我亂模板層次看編輯 – archlight

回答

0

有你需要檢查你可以看看得到它的工作之前,兩件事情它的工作原理。 (這是如果你需要這個。如果你使用它的另一場不會工作(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}}

相關問題