如何在流星模板上使用 if 条件?

Posted

技术标签:

【中文标题】如何在流星模板上使用 if 条件?【英文标题】:How can I use if condition on the meteor template? 【发布时间】:2015-04-24 13:54:32 【问题描述】:

我想在 Meteor Blaze 模板中使用 if 条件。假设您在要遍历任务的用户集合上有一个助手 users,如果用户名是管理员,请使用“红色”样式:

<ul>
    #each users
        <li #if(name==admin)class="red"/if>name</li>
    /each
</ul> 

【问题讨论】:

【参考方案1】:

Meteor 使用Spacebars,Handlebars 的变体,是“无逻辑”模板。你需要定义一个Template helper,然后在#if中使用。

Template.foo.helpers(
  isAdmin: function (name) 
    return name === "admin"
  
);
<ul>
  #each users
    <li #if isAdmin nameclass="red"/if>name</li>
  /each
</ul>

【讨论】:

谢谢!。但是是否可以在模板上使用条件或表达式? @Phirum,空格键中的所有计算都必须通过助手(或数据上下文)完成。 @PeppeL-G 为什么一切都需要通过助手来完成,空格键不应该引入===!== 语句吗? @DavidAnderton,我不知道为什么空格键不支持,我只能说它不支持。但这可能是因为空格键负责视图,并且将计算(例如等式表达式)远离视图是一种很好的做法,因此您只需要发送模型应该呈现的视图(但如果你问我,不允许在视图中使用相等的表达式太极端了)。

以上是关于如何在流星模板上使用 if 条件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将主干视图连接到流星车把模板?

如何在流星模板中创建全局函数

如何在流星模板中显示序列号

您将如何将订阅管理器与流星的模板订阅一起使用?

如何将下拉值传递给模板助手。 [流星+火焰]

本地数组更改时如何重新渲染流星火焰模板?