在Route类中未定义this.controller
this.controller is undefined in Route class
我正在使用EmberJS最新1.7.0开发SPA,根据Ember-docs的说法,路由包含一个对控制器的引用的属性,但在我的所有路由中,它总是返回undefined。
ApplicationRoute = Ember.Route.extend({
queryParams: {
tsk: {
// Opt into full transition
refreshModel: true
}
},
model: function(params) {
var task = {"name" : "task"};
this.controller.set('currentTask',task);
return task;
}
});
以及在另一路线中
SubfileRoute = Ember.Route.extend({
model : function(params) {
console.log(this.controllerName);
console.log(this.controller);
}
});
console.log(this.controllerName);
和console.log(this.controller);
都未定义,
如何正确使用ember控制器?唯一可行的方法似乎是通过这个。controllerFor()
更新:
我也尝试过使用这种方法:
needs:'application',
currentTask : Ember.computed.alias('controllers.application.currentTask'),
而且currentTask总是未定义的,因此控制器本身也是如此。
如果您想在控制器上设置属性,您应该使用setupController挂钩:
model: function(params) {
return {"name" : "task"};
},
setupController: function(controller, task) {
controller.set('currentTask',task);
}
相关文章:
- $(this).prop('property') vs. this.property
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 在另一个函数中使用变量this
- this.router在AngularJS 2中未定义
- reactjs this.refs vs document.getElementById
- JavaScript 中的嵌套函数和 “this” 关键字
- React+Meteor:this.ops返回未定义
- javascript中对象构造函数中的var属性与this.properties
- 函数中this和var之间的区别
- 在MVC 4中,对Controller的Ajax调用为空
- jQuery(this).Pparent().Pparente().Prent().find()在iPad上不起作用
- Understanding Javascript scope with "var that = this&qu
- 定义this.properties或objectName.properties的javascript JSON对象
- Object.prototype using 'this'
- 在JavaScript类型的函数中避免self-this
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- Javascript 对象和 this 关键字
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- Ember:使用this.get('controller.').content,find方法
- 在Route类中未定义this.controller