0

我有一个这样的控制器

App.TestController = Ember.ArrayController.extend({
    navigation:[],
    somefunc:function(){
      //do something
    }
});

并有一个观察者

globalvars = Ember.Object.create({
    page : 1,
});

globalvars.addObserver('page', function() {
    this.get('controller.controllers.Test').somefunc();
});

问题是我无法调用控制器内部的函数。

4

1 回答 1

2

正如我在评论中已经提到的,这里有一个免责声明:

您应该更详细地解释您要完成的工作。您正试图以一种奇怪的方式访问控制器。

但是,如果您绝对必须这样做,这里有一种方法:

var App = Ember.Application.create({});
// put the global vars into the App object instead of polluting the global namespace
App.globalvars = Ember.Object.create({
    page : 1,
});

我不会将观察者放在 globalVars 对象中,而是在控制器中声明观察者:

App.TestController = Ember.ArrayController.extend({
    navigation:[],
    somefunc:function(){
      //do something
    },
    globalVarsPageObserver : function(){
        this.somefunc();
    }.observes("App.globalvars.page")
});
于 2013-04-04T11:41:35.780 回答