将模板中可用的对象传递到{{render}}帮助程序似乎不起作用

时间:2014-06-06 20:14:27

标签: javascript ember.js

我有一个全局定义为App.configObj的对象,其中包含属性data。在视图模板中,我可以使用{{App.configObj.data}}来显示值,它可以正常工作。

在同一模板中,我使用{{render "viewC" model config=App.configObj}}呈现类似的视图,但该视图上的config属性在didInsertElement上保持为空。设置为原始值的其他参数在此时正确设置。

由于App.configObj在该上下文中绝对可用,我是否应该将其传递到该视图中?

以下是说明情况的jsbin:http://emberjs.jsbin.com/misiyaki/12/edit

如果您注释掉ViewC的渲染通话,则可以看到{{App.configObj.data}}在模板中渲染得很好。

我的目标是使用封装多个属性的对象来配置视图,因此我需要能够传递该对象。我花了很多时间在线搜索类似的内容,但没有找到任何人尝试此

我缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

我理解你在这里的努力是无法在你的渲染代码中传递一个属性......但在这种情况下,这似乎并不是真的有必要。

如果我能够正确地理解你的意图,那么这里有一些改变以向你展示另一种方式。 http://emberjs.jsbin.com/misiyaki/15/edit

您视图的新代码:

App.ViewCView = Em.View.extend({
  name: 'testName',
  config: function () {
    return App.configObj;
  }.property(),
  data: function () {
    return this.get('config.data')
  }.property('config'),
  templateName: 'view-c'
});

希望这有帮助!