我有一个模板:
<div id="search">
{{> search}}
</div>
<div id="bookmarks-container">
{{> bookmarks}}
</div>
<template name="bookmarks">
{{#each bookmarks}}
<div class="bookmark">
{{URL}}
</div>
{{/each}}
</template>
<template name="search">
<input type="text" id="search" value="" />
</template>
我有一个获取书签的代码:
bookmarks = new Meteor.Collection("Bookmarks");
if (Meteor.isClient) {
Template.bookmarks.bookmarks = function() {
var s = $('#search').text();
alert(s);
if (s === '')
return bookmarks.find({});
else
return bookmarks.find({tags : 'some_tag'});
};
如果 #search 文本字段为空,我想显示所有书签,如果不是,则过滤我的书签。
正如我所见,Template.bookmarks.bookmarks 仅调用一次 - 当页面加载到浏览器中时。每次用户按下 #search 文本输入中的按钮时,如何调用此方法:
Template.search.events({
'keyup #search' : function(e,t) {
// ....
}
提前致谢。
最佳答案
使用Session
中继数据
var s = Session.get("query");
和
Template.search.events({
'keyup #search' : function(e,t) {
Session.set("query",t.find('#search').value);
}
模板书签
助手本身不知道何时刷新数据。使用Session
告诉它query
变量/哈希是 react 性的。
关于javascript - 在浏览器上刷新集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364346/