我有这个 View MessagesView
,我想在其中渲染 n
个 MessageView
类型的 subview 。
MessagesView
的 Handlebars 模板部分如下所示:
{{#each message in controller}}
{{#link-to "message" message class="list-group-item"}}
{{view view.messageView}}
{{/link-to}}
{{/each}}
View 定义非常简单,唯一有趣的部分可能是:
MessagesView = Ember.View.extend({
messageView: MessageView,
...
});
MessageView = Ember.View.extend({
messageId = 0;
});
我想将 MessageView.messageId
初始化为 {{#each}}
帮助程序中的特定值 message.id
。就像这个假设的代码块:
{{view view.messageView({messageId: message.id})}}
我看不出有什么办法可以做到这一点。有人可以向我指出一个允许我这样做的方案,或者概述任何其他标准做法吗?
编辑:
<小时/>我看到一个 viewName
属性,可以通过 {{view}}
帮助器传递给 subview ,如下所示,here :
{{#view viewName="aChildByName"}} hi {{/view}}
我想我是在问如何将其他通用属性发送到 subview 。
编辑2
<小时/>主要是为了 future 的访问者,这在 Components 的讨论中提到过。 .
最佳答案
您只需在调用 View 时将其添加为“属性”即可实现此目的。
{{#each message in controller}}
{{#link-to "message" message class="list-group-item"}}
{{view view.messageView messageId=message.id}}
{{/link-to}}
{{/each}}
参见this fiddle获取示例。
关于Ember.js:将参数传递给使用 Handlebars {{view}} Helper 渲染的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749059/