【问题标题】:Ember.js: Passing parameters to child view rendered with Handlebars {{view}} HelperEmber.js:将参数传递给使用 Handlebars {{view}} Helper 呈现的子视图
【发布时间】:2013-12-23 18:22:40
【问题描述】:

我有这个视图 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的讨论中提到了这一点。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以通过在调用视图时将其添加为“属性”来完成此操作。

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

    有关示例,请参阅 this fiddle。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多