Ember / Handlebars:将变量与字符串进行比较

时间:2013-09-24 17:35:42

标签: if-statement ember.js handlebars.js

我需要根据当前视图变量显示一些块,与某些字符串相比:

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语句当然是伪代码

1 个答案:

答案 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}}