Ember使用this.render将数据传递给模板

时间:2016-10-07 08:31:10

标签: javascript jquery ember.js

我想使用render()渲染模板,并希望传递一些数据(模型)

如果我将参数作为模型传递,我会在模板中获取数据 model:this.controllerFor(this.routeName).someModel

this.render('my-template', {
  into: 'application',
  outlet: 'myOutlet',
  model: this.controllerFor(this.routeName).someModel
}); 

但下面不起作用。对传递的模型的命名有一些限制吗?

this.render('my-template', {
  into: 'application',
  outlet: 'flyout',
  myModel: this.controllerFor(this.routeName).someModel
}); 

2 个答案:

答案 0 :(得分:1)

您传递的属性不是model的名称,而是model

无论您传递什么,因为model属性将被设置为相应控制器上的model属性。

ember执行under the hood of render()的相关检查如下:

if (options && options.model) {
  controller.set('model', options.model);
}

其中options是作为render()的第二个参数传递的内容。

值得注意的是,这只是将controller.model设置为controller.someModel,这是多余的,因为您已经可以访问此数据。

答案 1 :(得分:0)

render方法有两个参数:nameoptions

options属性为:

  • 出口
  • 控制器
  • 模型

没有任何名为myModel的内容。 See docs