我需要根据当前视图变量显示一些块,与某些字符串相比:
PSEUDO 代码是:
{{#if view.someVariable "desiredValue"}}
Hurray desiredValue exists in this view!
{{else}}
Sorry, doesn't match...
{{/if}}
当然它不起作用,因为if
语句只允许一个参数。我尝试使用Handlebars的自定义registerHelper
,但它无法解析view.someVariable
,而是将其用作字符串(尽管定义了view.someVariable
并且具有值)。
最后我还尝试了Handlebar的registerBoundHelper
- 它解析了params但是不支持Handlebar的块,还有更多尝试将字符串解析为对象,所以再次失败。纯粹的疯狂!
我的观点非常动态,它们依赖于来自后端的许多因素,而来自伪代码的方法将非常适合解决它。有没有办法做到这一点?
修改 有一个我想要的样本...... http://jsfiddle.net/biesior/dMS2d/看起来很琐碎......
[if]
内的 each
语句当然是伪代码
答案 0 :(得分:1)
您可以在视图中声明一个计算属性,例如isDesired
,将someVariable
与您的字符串进行比较:
App.MyView = Ember.View.extend({
// ...stuff...
isDesired: Ember.computed.equal('someVariable', 'desiredValue')
});
在模板中有一个简单的条件:
{{#if view.isDesired}}
Hurray desiredValue exists in this view!
{{else}}
Sorry, doesn't match...
{{/if}}