2014-08-29 80 views
0

我正在嘗試調用同一路由中的「操作」方法。呼叫相同路由中的操作方法

我得到一個錯誤,當我在做這樣的事情:

沒有處理動作「refreshFoo」。如果您確實處理了該操作,則可能是由於 控制器中的操作處理程序返回true導致該操作冒泡,從而導致此錯誤。

這裏是我的代碼:

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

任何想法有什麼不好?我是否正確使用發送方法?

謝謝

回答

1

這個錯誤是因爲裏面setupControllerIndexRoute沒有完全兌現,所以當你發送的動作只能由ApplicationRoute

處理爲了它的工作方式你想,你需要用電話在Ember.run.later

發送這樣

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

工作箱:http://emberjs.jsbin.com/rununifupono/7/edit