EmberJS - 在路径setupController中调用控制器方法

时间:2015-04-15 01:09:57

标签: javascript ember.js

我有一个控制器,附带了一些方法。我有一个相关的路线。我在控制器中添加了方法,以便可以在其他一些地方重复使用它们。这些方法从服务器检索一些数据。在路线的 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;
    }
});

1 个答案:

答案 0 :(得分:1)

我想说你需要查看缩小的代码或代码被连接的顺序,但它不是setupController的问题。

我用你的例子创建了一个JSbin并通过Uglify运行它,它运行正常。

http://emberjs.jsbin.com/mizudelupi/2/

如果您可以使用缩小的,简洁的代码创建JSbin,我们可以查看并提供帮助。