有什么方法可以将变量上下文传递给 {{render}}
帮助器吗?
例如,我的模型具有多态关系,我想为每种不同类型呈现适当的 View (无需编写一整串 if
语句。
我的事件
模板如下所示:
<ul>
{{#each event in model}}
<li>
{{event.time}} {{render event.type event.eventable}}
</li>
{{/each}}
</ul>
event.type
是一个字符串,并设置为song
。如果我使用 {{render 'song' event.eventable}}
一切都会很好。但是传递变量字符串 'song'
不会产生任何结果。
这可以做到吗?
最佳答案
您可以通过编写自己的 Handlebars Helper 来实现此目的,它确定要渲染的模板,然后委托(delegate)给构建的渲染助手。试试这个:
Ember.Handlebars.registerBoundHelper('renderEvent', function(callingContext, event, options) {
return Ember.Handlebars.helpers.render.call(callingContext, event.get('type'), 'eventable', options);
});
然后在您的模板中,您将按如下方式调用该模板:
{{#each event in model}}
{{renderEvent this event}}
((/each}}
关于ember.js - 使用变量名调用 Handlebars {{render}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556631/