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 に答える