0

假設我在下面的灰燼代碼輸入「用戶」狀態當前狀態:Emberjs:重裝時全球行動稱爲

Html:  
<button {{action doSomething App.currentUsername}}>Go!</button> 

JS: 
App.Router = Ember.Router.extend({ 
    enableLogging: true, 
    root: Ember.Route.extend({ 
     doSomething: Ember.Route.transitionTo('user'), 
     main: Ember.Route.extend({ 
      route: '/' 
     }), 
     user: Ember.Route.extend({ 
      route: '/:username', 
      connectOutlets: function(router, context) { 
       //some actions 
      } 
     }) 
    }) 
}); 

當「DoSomething的」行動又被稱爲我想灰燼重新運行connectOutlets代碼(因爲用戶名會改變)。

將代碼置於'user'內的'doSomething'操作不起作用,因爲我需要上下文。

任何想法如何做到這一點?

感謝

回答

0

顯然,在灰燼中,如果狀態被稱爲具有相同上下文對象也不會連接插座(或者甚至沒有在第一時間進入狀態)。解決這個問題的方法很簡單,就是提供一個新的上下文,所以我們用'doSomething'代替:

doSomething: function(router, event) { 
    router.transitionTo('user', {username: event.context.username}); 
}