我喜欢和流星一起工作,但我遇到了一个问题,我无法找到解决方案。
在模板文件中,我有以下代码:
<template name="klussenboard">
<h2>Klussen</h2>
<div class="klussenboard">
{{#each klus}}
{{#if status=1}}
<li>
<a class="startlink" href="#"><img src="/images/starten.png"></a>
</li>
{{/if}}
{{/each}}
</div>
</template>
这是js客户端代码
Template.klussenboard.klus = function () {
return Klussen.find({"status": { $gt: 0 }}, {
sort: {datum: -1}
});
};
但这不起作用。如何在模板文件中执行语句?
期待回答。
答案 0 :(得分:3)
Spacebars(meteor的模板库),就像Handlebars(基于它)一样,不会执行任意表达式,比如angular.js的模板。< / p>
如果你更改了你正在尝试写入辅助方法的语句,就像这样(随意选择一个更好的名字!):
<template name="klussenboard">
<h2>Klussen</h2>
<div class="klussenboard">
{{#each klus}}
{{#if isEnabled}}
<li>
<a class="startlink" href="#"><img src="/images/starten.png"></a>
</li>
{{/if}}
{{/each}}
</div>
</template>
然后,您可以在任何客户端.js文件中定义isEnabled帮助程序 - 例如,client/klussenboard.js
,如下所示:
Template.item.isEnabled = function() {
return this.status == 1;
}
因此,辅助函数中的this
是
这假设您处于status
是变量的上下文中(根据您的问题,您是)
只要status
变量发生变化,这就会被动地更新。