我试图将参数从我的HTMLBars模板传递给Helper。
根据文档,我已经创建了一个帮助程序并明确注册了帮助程序:
export default Ember.HTMLBars.makeBoundHelper('is-foo', function(value, options) {
console.log("value: "+value);
});
但是我收到错误"错误:断言失败:makeBoundHelper生成的助手不支持使用块"
所以我尝试使用Ember.HTMLBars.helper和Ember.HTMLBars.registerHelper建议here,但我收到错误" TypeError:Ember.default.HTMLBars.helper不是函数& #34;
如果我没有明确地重新启动助手:
export default function(value, options) {
console.log("value: "+value);
};
然后我可以传递一个参数,但它没有得到解决,并且会记录我传递的文字。
所以我尝试了here概述的解决方案,但似乎无法使用CLI
我想要的结果是根据我发送给帮助程序的参数值动态选择组件。我的HTMLBars代码如下所示:
{{#each foo in model}}
{{is-foo parameter}}
{{a-component}}
{{else}}
{{another-component}}
{{/is-foo}}
{{/each}}
我不知道接下来该做什么。任何帮助表示赞赏。
答案 0 :(得分:0)
在Ember CLI项目中执行类似的操作,因为帮助文件名是帮助程序名称
export default Ember.HTMLBars.makeBoundHelper(function(value, options) {
而不是
export default Ember.HTMLBars.makeBoundHelper('is-foo', function(value, options) {
修改强>
根据@TheCompiler的要求,建议作为答案。
执行HTMLBars中的操作
{{if is_parameter}}
{{a-component}}
{{else}}
{{another-component}}
{{/if}}
在Controller或Component中计算出的parameter
属性
is_parameter: function () {
var pm = this.get('parameter');
return (your condition for `pm`)? true : false;
}.property('parameter')
答案 1 :(得分:0)
您想要的行为是在this answer中实现的。
如果您想知道如何实施component
帮助程序,可以在此处查看其源代码:helpers/component.js(目前第63行)