Ember.js:将参数传递给使用Handlebars {{view}} Helper渲染的子视图

时间:2013-12-23 18:22:40

标签: ember.js

我有这个视图MessagesView我要在其中呈现n类型的MessageView子视图。

MessagesView的把手模板部分如下所示:

{{#each message in controller}}
    {{#link-to "message" message class="list-group-item"}}
        {{view view.messageView}}
    {{/link-to}}
{{/each}}

视图定义非常简单,唯一有趣的部分可能是:

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}}帮助程序传递给子视图,如here

{{#view viewName="aChildByName"}} hi {{/view}}

我想我正在问如何将其他通用属性发送到子视图。

编辑2


主要针对未来的访问者,在Components的讨论中提到了这一点。

1 个答案:

答案 0 :(得分:4)

您可以通过在调用视图时将其添加为“属性”来实现此目的。

{{#each message in controller}}
    {{#link-to "message" message class="list-group-item"}}
        {{view view.messageView messageId=message.id}}
    {{/link-to}}
{{/each}}

请参阅this fiddle了解样本。