1

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

代码是:

{{#if view.someVariable "desiredValue"}}
    Hurray desiredValue exists in this  view!
{{else}}
    Sorry, doesn't match...
{{/if}}

当然它不起作用,因为if语句只允许一个参数。我尝试使用registerHelperHandlebars 的自定义,但它没有解析view.someVariable,而是将其用作字符串(尽管view.someVariable已定义并具有值)。

最后我还尝试了 Handlebar's registerBoundHelper- 它解决了参数但不支持 Handlebar 的块,更重要的是尝试将字符串解析为对象,所以再次失败。纯粹的疯狂!

我的观点非常动态,它们也取决于后端的许多因素,而伪代码的方法非常适合解决它。有没有办法做到这一点?

编辑: 有一个我想要的样本...... http://jsfiddle.net/biesior/dMS2d/看起来很简单......

[if]里面的语句each当然是伪代码

4

1 回答 1

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}}
于 2013-09-24T18:20:02.437 回答