Ember.js 从嵌套对象访问控制器

Ember.js 从嵌套对象访问控制器,ember.js,Ember.js,我需要从常规对象中访问余烬控制器上下文。目前,我正在init()方法中保存对控制器上下文的引用,这似乎有点糟糕 let self = this //saving the context here export default Ember.controller.extend({ init() { this._super(...arguments); self = this; }, settings: { crud: { read: {

我需要从常规对象中访问余烬控制器上下文。目前,我正在init()方法中保存对控制器上下文的引用,这似乎有点糟糕

let self = this //saving the context here
export default Ember.controller.extend({

  init() {
    this._super(...arguments);
    self = this;
  },

  settings: {
     crud: {
        read: {
          enabled: true,
          default() {
            return self.get('blah.blah'); //Need to access the controller context
          }
        }
     }
  }

});

所以我需要访问控制器
self.get('blah.blah')
。有更好的方法吗?

使用计算属性闭包

export default Ember.controller.extend({

  settings: Ember.computed(function() {
     const controller = this;

     return {
       crud: {
        read: {
          enabled: true,
          defaults() {
            return controller.get('blah.blah');
          }
         }
       }
     };
  })

});
访问对象

this.get('settings').crud.read.defaults(); // "blah.blah"