【发布时间】:2014-03-26 06:18:16
【问题描述】:
我已经在里面敲了两天的头。
我正在创建一个搜索引擎,正在使用 Meteor 框架动态创建查询,查询工作正常,当我搜索时,我可以将 UI(在我的案例中为表)与动态数据查询输出重新绑定。
但是,如果数据对象发生插入/更新/删除操作
并且 UI(html 表格)没有更新。
这意味着当数据对象改变时模板不会重新渲染。
Template.search.rendered = function () {
Meteor.autorun(function() {
alarmsData = Alarms.find(getSearchSelector($('#searchTxt').val(), $('#startTimeTxt').val(), $('#endTimeTxt').val())).fetch()
console.log("rendered")
//alarmsData = Alarms.find({},{sort: {timestamp: "desc"} }).fetch();
searchControls(alarmsData)
getConsole(alarmsData, ".console")
$('#badge').html(alarmsData.length)
})
}
get 控制台函数只是从搜索中读取数组并创建一个 html 表(这工作正常)
至于开始,我正在创建一个简单的查询作为我的搜索的默认值。然后在用户更改搜索条件时更改此查询。我可以注意到只有第一个数据对象实例被保留并跟踪更改,所以如果第二个搜索条件位于第一个搜索条件内,它正在更新 UI,如果没有任何事情发生
我使用过 Meteor.autorun(function(){}) 函数,但是我使用 console.log 跟踪了它的执行情况,当我在数据库中为同一个集合插入数据时,我可以看到它没有执行。
【问题讨论】:
标签: meteor