ember.js - 如何从 Controller 访问模型?

标签 ember.js ember-cli

我似乎无法从 Controller 内部获取模型,即使 Controller 似乎设置了模型属性。下列:

export default Ember.ObjectController.extend({
    init: function() {
        this._super();
        console.log(this.get('model'));
        console.log(this.model);
        console.log(this);
    }
}

打印出来:

enter image description here

有任何想法吗?

最佳答案

所以事实证明,当我通过设置断点来检查模型时,它是空的。我假设控制台显示内容,因为一旦内容到达它就会更新模型。

init()该模型无法访问:

init: function() {
    this._super();
    console.log(this.get('model'));  // null
}

任何方法都一样 .on('init') :
onInit: function() {
    console.log(this.get('model'));  // null
}.on('init'),

但是该模型可用于操作(我假设是因为在调用该操作时该模型已经建立):
someAction: function() {
    console.log(this.get('model'));  // model object as expected
}

所以回答我的问题,this.get('model')可用于从 Controller 访问模型,但不能用于 init().on('init')方法。

关于ember.js - 如何从 Controller 访问模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763306/

相关文章:

css - 如何将 scss npm 模块导入 Ember

Ember.js 所见即所得的内联编辑器

javascript - 未能在已部署的 emberjs 应用程序上的资源的 'integrity' 属性中找到有效的摘要

javascript - Ember 根据参数名称返回未定义的 url 参数

javascript - 当 QUnit 测试套件完成时登录到终端?

javascript - 将 ember-cli 从 0.0.40 升级到 0.1.2 时遇到问题 - 转换器不再喜欢 emblem

ember.js - 有没有办法从自定义目录解析 Ember 路由、 Controller 、组件?

javascript - 为什么我不能设置这个对象属性?

javascript - 使用 Ember 初始化器设置域相关数据

javascript - 来自 ember 数据存储的 ember map 对象