2015-06-22 89 views
0

我試圖在每次提交或刪除單詞時重新呈現列中單詞的集合。當單詞被刪除時它重新呈現,但當單詞被提交時不會重新呈現。流星反應變量:得到了我的反應計算+反應性來源,但沒有反應

這裏是我的模板:

<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,並提交一個新單詞。它會顯示在主框中,而不是右側所有單詞的列表。

回答

1

您需要在該回調的某個位置有一個Session.set("wordIds"...。如果這不改變,你的助手中的光標不會改變。由於您當前的光標包含所有當前的文檔,因此當您刪除某些內容時,它會作出反應。

PS,嘗試徹底廢除會話var。如果可能的話,處理訂閱中的邏輯(或者從應用程序的外觀來看,全部是這樣)。

+0

哦對。我喜歡你對我的西班牙語詞彙表的貢獻,ftw。 –

+0

哈哈哈我不好,一直住在墨西哥太久了:-X –