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

使用“需要”在另一个控制器中使用一个控制器。

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