编程语言
首页 > 编程语言> > javascript-灰烬的registerBoundHelper和车把块

javascript-灰烬的registerBoundHelper和车把块

作者:互联网

因此,我从here处获取了“ 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’传递,而不是它的值.

现在:当我实际运行此逻辑时,它似乎起作用

问题是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}}

标签:javascript,handlebars-js,ember-js
来源: https://codeday.me/bug/20191011/1895778.html