从 didinsertelement 视图访问应用程序控制器
Access application controller from didinsertelement view
我想访问应用程序控制器,这样我就可以 get/set 一个变量 (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');
...
你的属性有误。使用 needs
功能将这些控制器置于 controllers
属性 中。然后,您的视图可以使用 controller
属性 访问其自己的控制器。所以你需要在你看来这样做:
didInsertElement: function() {
var selected_date = this.get('controller.controllers.application').get('selected_date');
}
我用解决方案更新了代码:
var controller = this.get('controller');
var selected_date = controller.get('controllers.application').get('selected_date');
我想访问应用程序控制器,这样我就可以 get/set 一个变量 (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');
...
你的属性有误。使用 needs
功能将这些控制器置于 controllers
属性 中。然后,您的视图可以使用 controller
属性 访问其自己的控制器。所以你需要在你看来这样做:
didInsertElement: function() {
var selected_date = this.get('controller.controllers.application').get('selected_date');
}
我用解决方案更新了代码:
var controller = this.get('controller');
var selected_date = controller.get('controllers.application').get('selected_date');