我需要根据模型的属性渲染模板。
我的策略是为句柄栏模板使用自定义if块助手,如下所示:
{{#ifequals type 'cars'}}
{{cars-component}}
{{/ifequals}}
{{#ifequals type 'planes'}}
{{planes-component}}
{{/ifequals}
但是我无法创建一个块帮助器来解析模板传递给帮助器的参数。
如果我使用Handlebars.registerHandlebars,它会解析变量的变量名。
我需要这样做的原因是因为它是插件框架的一部分。
答案 0 :(得分:1)
选项块(特殊if语句)在ember把手助手中无法正常工作。 https://github.com/emberjs/ember.js/issues/2237
isCar: Ember.computed.equals('type', 'cars')
isPlane: Ember.computed.equals('type', 'planes')
{{#if isCar}}
{{cars-component}}
{{/if}}
{{#if isPlan}}
{{planes-component}}
{{/if}}
看起来你几乎可以做到,但是它存在问题,正如上面的github问题所指出的那样。
Ember.Handlebars.helper('iff', function(value,property, options) {
if(value === property){
return options.fn.apply();
} else {
return options.inverse.apply();
}
});
http://emberjs.jsbin.com/UhOWeWiJ/1/edit
http://emberjs.jsbin.com/UhOWeWiJ/2/edit
当您尝试实现类似这样的内容并且值实际发生更改时,您将收到绑定块错误
https://github.com/emberjs/ember.js/issues/2237
Uncaught你不能在渲染过程之外使用appendChild
http://emberjs.jsbin.com/UhOWeWiJ/3/edit http://emberjs.jsbin.com/UhOWeWiJ/3/edit