次のユースケースがあります。中にベッドがある部屋があります。(残念…)
テンプレート「部屋」を使用する部屋のループがあります。
<template name="rooms">
{{#each availableRooms}}
{{> room}}
{{/each}}
</template>
このテンプレートは、反復ごとに部屋を取得します。これでアクセス可能です。
<template name="room">
<div class="room-outer">
<button type="button" class="btn" data-toggle="collapse" data-target="#list-{{_id}}">
{{name}} : {{getBeds this}} beds free.
</button>
<div id="list-{{_id}}" class="collapse in room-inner">
{{#each guests_id}}
<div class="bed">
<div class="blanket">
{{showUser this}}
</div>
</div>
{{/each}}
</div>
</div>
</template>
テンプレートを拡張して特別な値を計算するのが好きです。次に、この変数を getBeds 関数に渡す必要があります。テンプレートの外側をつかみ、部屋を関数に入れることでこれを行うことは可能ですか?
Template.room.getBeds = function (room) {
if (room.guests_id)
return room.beds - _.size(room.guests_id);
else
return room.beds;
};
基本的に、{{getBeds this}} を書く必要はなく、{{getBeds}} だけを書く必要はありません。