1

別のコントローラーからコントローラーを取得したいと思います。

アプリ定義

var App = Ember.Application.create();
App.Router.map(function() {
    this.route("index", {path: "/"});                                                    
    this.resource('markets', {path: "/markets"}, function() {
      this.route("sources");
    });
});

ルートを定義する

App.IndexRoute = Ember.Route.extend({
    redirect: function() {
        this.transitionTo('markets');
    }
});

App.MarketsRoute = Ember.Route.extend({
    model: function () {
        return App.Markets.find();
    }
});

App.MarketsRoute = Ember.Route.extend({
    model: function () {
        return App.Markets.find();
    }
});

App.MarketsSourcesRoute = Ember.Route.extend({
    model: function(){
        return App.Sources.find();
    },
    serialize: function(model) {
        return { markets_id: model.id };
    }
});

コントローラ定義

App.MarketsSourcesController = Ember.ObjectController.extend({
    need: ['nav'],
    testmethod: function(){
       this.get("content").clear();
    }
});

App.MarketsController = Ember.ObjectController.extend({
    test:function(){
        //****************************************//
          MAIN AREA
        //****************************************//
    }
});

App.MarketsController の test() で App.MarketsController の testmethod() を呼び出します。
そのために、私は this.controllerFor() と this.get() を使用しましたが、これらは機能し
ません。私はそれをしたいです。

4

1 に答える 1

2

あるコントローラーを別のコントローラー内で使用するには、「needs」を使用します。

App.MarketsController = Ember.ObjectController.extend({
needs: ['marketsSources'],
test:function(){
  this.get('controllers.marketsSources').testmethod();
}
});
于 2013-07-23T12:10:18.697 に答える