【发布时间】:2014-09-29 10:53:07
【问题描述】:
我正在使用 ember-cli,并且有一个控制器使用渲染助手,因此没有路由。示例
{{render 'ref-type' ref-type}}
现在在控制器 ref-type 中
export default Ember.Controller.extend({
actions{
isShown: function() {
var m = this.get('model'); //here model is undefined can i know why?
}
}
});
模型参考类型是
export default Ember.Object.extend({
getData: function(){
return 'xyz'; //data is returned hre
}
});
为什么我无法访问控制器中的模型。
添加原始 JSBin 示例
JSBIN
模型应该始终是 DS.Model.extend 吗?我不这么认为。
另外,我使用“sample”作为名称,而不是 ref-type,以便更容易理解
【问题讨论】:
-
能否提供完整的 JSBin 示例?
-
这非常困难,因为我使用的是 ember cli 而不仅仅是 ember js
-
我认为这不是 ember-cli 问题。您在哪里初始化 {{render 'ref-type' ref-type}} 中引用的模型
-
它绝对不是 ember-cli 问题。我在 ember-cli 中有我的代码,所以很难将它放在 jsbin 中。 {{render 'ref-type' ref-type}} 中的调用本身应该进行赋值。 ember-cli 中没有单独的初始化。在构建它时要小心
-
@Wishy 实际上,在使用 ember cli 时制作一个小的 JSBin 来显示您的问题并不难。只需遵循旧的命名约定。现在不可能说出你的问题是什么。您有一个名为 getData 的方法,但没有调用此方法。您调用了 this.get('model') 但没有显示路线。这个模型属性在哪里设置?是在另一条路线上吗?我们需要查看该路线,然后查看您是否正确设置了模型。谁在调用 isShown?什么是“参考类型”模板?什么是 ref 类型的对象?它是在哪里创建的?
标签: ember.js model controller render ember-cli