0

コントローラーの App.Router で rootURL を取得して、JSON 要求で使用するにはどうすればよいですか?

次のように rootURL を指定すると:

App.Router.reopen({
  rootURL: '/site1/'
});

私はこのようなことができるようにしたい:

FooController = Ember.ObjectController.extend({
   needs: ["application"],
   actions: {
     examine: function() {
         var rootURL = this.get('controllers.application.router.rootURL');
         $.getJSON(rootURL + "/examine/" + id).then(function(response) {
         // do stuff with response
         });
      }
    }
});
4

2 に答える 2

1

ルーターはすべてのルートに注入されます。そのアクションをルートまで移動し、そこからルーターを取得できます。

FooRoute = Ember.Route.extend({
   actions: {
     examine: function() {
         var rootURL = this.get('router.rootURL');
         $.getJSON(rootURL + "/examine/" + id).then(function(response) {
         // do stuff with response
         });
      }
    }
});

または、ルートがコントローラーをセットアップしているときに、コントローラーにプロパティを追加することもできます。

FooRoute = Ember.Route.extend({
  setupController: function(controller,model){
    this._super(controller, model);
    controller.set('rootURL', this.router.rootURL);
  }
});

例: http://emberjs.jsbin.com/tomuhe/1/edit

于 2014-07-26T02:31:12.330 に答える