Meteor.js 模板块中的“或”条件
Posted
技术标签:
【中文标题】Meteor.js 模板块中的“或”条件【英文标题】:'Or' condition in Meteor.js template blocks 【发布时间】:2015-01-10 21:07:54 【问题描述】:有没有办法在 Meteor 模板中执行条件“和”或“或”?我想做的是这样的:
#if isInRole 'ADMIN' || isInRole 'INSPECTOR'
...do some stuff
/if
使用第 3 方软件包 alanning:roles
提供的帮助程序。这似乎在我使用 Meteor 的编码中多次出现,我可以并且已经解决了它,通常是通过复制块代码,但如果已经存在某种方法来处理 OR 或 AND 条件,那就太好了疯狂的旋转。
【问题讨论】:
【参考方案1】:Meteor 使用基于车把的空格键。在车把中,现在有逻辑运算符的直接方式。
您可以通过创建Template.helper
来处理or
的小变通方法
Template.registerHelper("equals_or", function(param, arr)
arr = arr.split(",");
if (arr.indexOf(param) !== -1)
return true;
else
return false;
);
然后在 html 中就可以了
#if equals_or isRole "ADMIN,INSPECTOR"
...do some stuff
else
...do some other stuff
/if
我可能不是一个完美的解决方案,但它正在发挥作用。
也检查这个answer。
【讨论】:
一个助手可以这样调用另一个助手吗? isInRole 是由alanning:roles
包创建的全局模板助手。对于这个特定实例,我的另一种选择是编写更多自己的isInAnyRoles
,它接受一个数组而不是单个角色。或者也许我应该修改alanning:roles
并回馈社区。可能对每个人来说都是更好的解决方案。
@CodeChimp 你最后真的更新了 alanning:roles 吗?因为逗号分隔功能现已推出! alanning.github.io/meteor-roles/classes/UIHelpers.html以上是关于Meteor.js 模板块中的“或”条件的主要内容,如果未能解决你的问题,请参考以下文章
在 coffeescript 类中包装meteor.js 车把模板