因此,我从此处获取了“ is”帮助程序块并对其进行了修改,以便它使用registerBoundHelper通过Ember注册它的帮助程序。
我这样做的原因是因为我基本上需要一个基于车把的“ switch”语句。我的车把的最终结果如下:
{{#is MyProperty 1}}
...Do something here...
{{/is}}
{{#is MyProperty 2}}
...Do something here...
{{/is}}
{{#is MyProperty 3}}
...Do something here...
{{/is}}
{{#is MyProperty 4}}
...Do something here...
{{/is}}
is语句只是在'MyProperty的值和常量之间进行简单的比较。
如果我不使用'registerBoundHelper',则MyProperty将作为字符串文字'MyProperty'传递,而不是value。
现在:当我实际运行此逻辑时,它似乎起作用
问题是Ember引发以下错误:
registerBoundHelper-generated helpers do not support use with Handlebars blocks.
我是否应该忽略此错误,然后继续运行,因为它确实正在起作用?还是应该尝试重做不使用块的逻辑?
您不应该忽略它,因为它不受支持,如果MyProperty
在渲染发生后进行更改会损坏。
灰烬车把不提供条件性帮手(对我们许多人来说都是消亡)。原因是核心团队希望将此逻辑作为计算属性,而不是模板中的逻辑。
IE浏览器
App.IndexController = Em.ObjectController.extend({
isPropertyOne: Em.computed.equal('myProperty', '1')
});
{{#if isPropertyOne}}
any template stuff
{{render 'something'}}
{{someValue}}
{{/if}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句