获取流星模板的外部上下文

时间:2013-01-15 14:18:20

标签: meteor

我有以下用例:有些房间里面有床。 (无赖...)

有一个房间循环使用模板“房间”。

<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}}

1 个答案:

答案 0 :(得分:2)

不应该这样吗?

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

请参阅docs

  

助手可以接受参数,他们会在this

中收到当前的模板数据