mrt:peity, как связаны данные
Я установил 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). Я думаю, что это нарушает эту иерархию. это работает, если я делаю это
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 ответ
Есть две вещи, которые нужно проверить, прежде чем вы сможете посмотреть, как это работает:
Во-первых, прогнозы должны быть размещены в 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}}