docs.meteorによると、「Template.myTemplate.rendered」コールバックの本文では、「this」はテンプレートインスタンスオブジェクトです。
ただし、コールバックに「デバッガー」行を挿入し、ブラウザー開発ツールを使用してチェックすると、「this」の値は「window」になります。私は何か間違ったことをしていますか?
リーダーボードの例を使用しています-ハンドルバーテンプレートは次のとおりです。
<template name="leaderboard">
{{#each players}}
{{> player}}
{{/each}}
{{#if selected_name}}
<div class="details">
<div class="name">{{selected_name}}</div>
<input type="button" class="inc" value="Give 5 points" />
<input type="button" class="fastclick inc" value="Give 5 points - fast" />
</div>
{{/if}}
{{#unless selected_name}}
<div class="none">Click a player to select</div>
{{/unless}}
</template>
<template name="player">
<div class="player {{selected}} fastclick">
<span class="name">{{name}}</span>
<span class="score">{{score}}</span>
</div>
</template>
そして、「Template.leaderboard.rendered」コールバック:
Template.leaderboard.rendered = function (){
Meteor.defer(function() {
debugger;
new FastClick(document.body);
console.log("Template.leaderboard.rendered: " + JSON.stringify(this));
});
}
}