从didinsertelement视图访问应用程序控制器

时间:2015-02-13 16:48:58

标签: ember.js

我想访问应用程序控制器,这样我就可以获取/设置变量(selected_date)值。

myApp.ApplicationController = Ember.Controller.extend({
    selected_date: null,
  actions: {
    }
  }
});

我想从视图(didinsertelement)编辑selected_date,视图的控制器是:

myApp.CreportController = Ember.ObjectController.extend({
    needs: ["application"]
});

视图:

CreportController View = Ember.View.extend({
    didInsertElement: function() {
        var controller = this.get('controller');
        var selected_date = controller.get('controllers.application').get('selected_date');
        ...

2 个答案:

答案 0 :(得分:2)

您的财产有误。使用needs功能将这些控制器置于controllers属性中。然后,您的视图可以使用controller属性访问自己的控制器。所以你需要在你的视图中这样做:

didInsertElement: function() {
    var selected_date = this.get('controller.controllers.application').get('selected_date');
}

答案 1 :(得分:0)

我用解决方案更新了代码:

var controller = this.get('controller');
var selected_date = controller.get('controllers.application').get('selected_date');