我正在用 Meteor 构建一个免费的电视跟踪应用程序,一路上我似乎碰壁了。我的模板的一部分包含以下内容:
<template name="results">
<div class="row">
<div class="span6 offset6">
<h4>Search Results</h4>
<ul>
{{#each series}}
<li><a href="http://thetvdb.com/?tab=episode&seriesid{{tvdbseriesid}}&lid={{tvdblid}}">{{seriesname}}</li>
{{/each}}
</ul>
</div>
</div>
</template>
然后,在我的客户端 js 代码中,我这样做:
Template.search.events({
'click #search' : function(evt) {
evt.preventDefault();
var query = $('#query').val();
if (query) {
Meteor.call('queryshow', query, function(error, result) {
Template.results.series = result;
console.log(Template.results());
});
}
}
});
“queryshow”服务器方法只是一个 Collection 查询方法,它返回一个包含我的模板所需数据的对象。
然而问题是这样的:更改没有反映在浏览器窗口中。我似乎无法弄清楚为什么,因为下面显示的 console.log(Template.results()) 调用返回了我期望的正确 html。
我该如何解决?我尝试查看 Meteor 的文档,但似乎找不到强制重新渲染模板的功能。任何帮助都感激不尽!