3

次のユースケースがあります。中にベッドがある部屋があります。(残念…)

テンプレート「部屋」を使用する部屋のループがあります。

<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}} だけを書く必要はありません。

4

1 に答える 1

2

これはうまくいかないのですか?

Template.room.getBeds = function () {
    if (this.guests_id)
        return this.beds - _.size(this.guests_id);
    else
        return this.beds;
};

ドキュメントを参照してください:

ヘルパーは引数を取ることができ、現在のテンプレート データを で受け取りますthis

于 2013-01-15T15:55:44.110 に答える