Meteor を使用して無料の TV 追跡アプリを作成していますが、途中で壁にぶつかったようです。私のテンプレートの一部にはこれが含まれています:
<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 のドキュメントを調べてみましたが、テンプレートを強制的に再レンダリングする関数が見つからないようです。どんな助けでも大歓迎です!