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

标签 ember.js

我有这个 View MessagesView,我想在其中渲染 nMessageView 类型的 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/

相关文章:

javascript - 在 Ember-CLI 的应用程序初始化程序中注入(inject)?

ember.js - Ember CLI : how to get proxy to override http-mock

javascript - 如何通过实时重新加载将西兰花插件添加到 ember-cli 应用程序?

api - Ember Auth 用户持久化

backbone.js - 哪个前端框架用于使用 json 模式描述的资源?

ember.js - 对不同的对象重用模型

javascript - 带图的 EmberJS 组件

javascript - Ember -- JSON API 适配器错误处理

javascript - Ember.js 嵌套模型

javascript - 获取 Handlebars 和 Ember 中元素的值