流星反应变量:得到了我的反应计算+反应性来源,但没有反应
问题描述:
我试图在每次提交或删除单词时重新呈现列中单词的集合。当单词被删除时它重新呈现,但当单词被提交时不会重新呈现。流星反应变量:得到了我的反应计算+反应性来源,但没有反应
这里是我的模板:
<template name = "wordColumn">
{{#each words}}
<button class = "label label-default" draggable="true">
{{word}}
</button>
{{/each}}
</template>
这里是我的助手:
Template.wordColumn.helpers ({
words: function() {
var words;
var wordIds = Session.get ("wordIds");
words = Words.find({ '_id': { $in: wordIds } }, { sort: { createdAt: -1 } });
return words;
},
})
这里是文字模板事件内提交代码。当我做Words.find(),很明显,基础数据库已更改,因此Words.find()以上应无功和自动更新,列:
"submit .new-word": function (e) {
var text = e.target.word.value;
Meteor.call ("addWord" , text, function (err, data) {
Session.set ("displayInMainBox", Words.find(data).fetch()[0]);
});
e.target.word.value = "";
return false;
}
但没有雪茄 - 我只是没有按提交的词除非我刷新页面,否则不会自动显示。
你可以在这里查看已部署的应用程序:contextual.meteor.com,并提交一个新单词。它会显示在主框中,而不是右侧所有单词的列表。
答
您需要在该回调的某个位置有一个Session.set("wordIds"...
。如果这不改变,你的助手中的光标不会改变。由于您当前的光标包含所有当前的文档,因此当您删除某些内容时,它会作出反应。
PS,尝试彻底废除会话var。如果可能的话,处理订阅中的逻辑(或者从应用程序的外观来看,全部是这样)。
哦对。我喜欢你对我的西班牙语词汇表的贡献,ftw。 –
哈哈哈我不好,一直住在墨西哥太久了:-X –