如何在Meteor中避免重复模板?

时间:2014-12-21 12:43:55

标签: meteor meteor-blaze spacebars meteor-helper

所以我正在使用meteor构建我的第一个应用程序,我觉得我正在重复自己的模板,而不是我应该做的。

我有多个父视图,其中一个示例是用户联系人视图,以及添加组成员视图。 (以下简化示例。)

<template name="GroupMembers">
    {{#each contacts}}
        {{> contact }}
    {{/each}}
</template>

<template name="contacts">
    {{#each contacts}}
        {{> contact }}
    {{/each}}
</template>

<template name="contact">
    //... single contact template stuff
</template>

当联系人显示在联系人列表中时,我想在单个联系人模板中显示从联系人中删除链接,但在组成员列表中,我想在其位置添加“添加到组”链接。我知道我可以使用会话变量或通过调用铁路由器控制器obj来实现这一点,但我想知道在模板帮助器中是否有一种简单的方法可以做到这一点。或者换句话说这些模板部分可以变为上下文感知吗?

任何帮助都会很棒。

感谢。

1 个答案:

答案 0 :(得分:2)

我会这样解决:

<template name="GroupMembers">
    {{#each contacts}}
      {{> contact groupMembers=true}}
    {{/each}}
</template>

<template name="contacts">
    {{#each contacts}}
        {{> contact }}
    {{/each}}
</template>

<template name="contact">
    <p>
      {{#if groupMembers}}
        {{../name}} 
        <button>add to group</button>
      {{else}}
        {{name}} 
        <button>delete</button>
      {{/if}}
    </p>
</template>

现场演示:http://meteorpad.com/pad/LDTvHC787kJ6e9JQA/Leaderboard