我有一个控制器,附带了一些方法。我有一个相关的路线。我在控制器中添加了方法,以便可以在其他一些地方重复使用它们。这些方法从服务器检索一些数据。在路线的 setupController 内,我正在调用这些方法,一切都按预期工作。
但是一旦我连接文件,Ember会抛出一个错误,说我试图调用的方法是未定义的。我使用 grunt-contrib-concat 插件,但也尝试将其更改为使用 uglify 。仍然是同一个问题。我不认为连接有任何问题,因为它以前一直有效。但是,除了设置属性之外,我从未使用过setupController。添加了以下示例代码。任何帮助表示赞赏。
/* Ember 1.10.0 Debug version */
/* Route */
App.DashboardRoute = Ember.Route.extend({
model: function() { return []; },
setupController: function(controller, model) {
this._super(controller, model);
/* Setting values on the controller works */
controller.set('currentDate', new Date());
/* Calling a method works normally but throws error when minified */
/* Error: dashboard undefined is not a function */
controller.addNumbers();
}
});
/* Controller */
App.DashboardController = Ember.ArrayController.extend({
currentDate: null,
addNumbers: function() {
return 1 + 2;
}
});
答案 0 :(得分:1)
我想说你需要查看缩小的代码或代码被连接的顺序,但它不是setupController
的问题。
我用你的例子创建了一个JSbin并通过Uglify运行它,它运行正常。
http://emberjs.jsbin.com/mizudelupi/2/
如果您可以使用缩小的,简洁的代码创建JSbin,我们可以查看并提供帮助。