2014-08-29 2 views
0

Я пытаюсь вызвать метод «действия» в рамках одного и того же маршрута.Вызвать методы действия в пределах одного и того же маршрута

Я получаю сообщение об ошибке, когда я делаю что-то вроде этого:

Ничто не обработал действие «refreshFoo». Если вы выполнили действие, эта ошибка может быть вызвана возвратом истины из обработчика событий в контроллере , в результате чего действие будет пузыриться.

Вот мой код:

export default Ember.Route.extend({ 
    setupController: function (controller, model) { 
     this._super(controller, model); 
     this.send('refreshFoo'); 
    }, 

    actions: { 
     refreshFoo: function() { 
      alert('refreshed!'); 
     } 
    } 
}); 

http://emberjs.jsbin.com/rununifupono/2/edit

Любая идея, что это не так? Я правильно использую метод отправки?

Thanks

ответ

1

Ошибка в том, что внутри setupControllerIndexRoute не полностью материализовался так, когда вы отправляете действие может быть обработан только ApplicationRoute

Для того, чтобы он работал так, как вы хотели бы, вам нужно обернуть вызов для отправки в Ember.run.later

как это

Ember.run.later(this, function(){ 
    this.send('refreshFoo') 
}); 

рабочий ящик: http://emberjs.jsbin.com/rununifupono/7/edit

Смежные вопросы