0

次の Ember コードで「ユーザー」状態に入るとします。

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」アクションが再度呼び出されたときに、Ember に connectOutlets コードを再実行してもらいたい (ユーザー名が変更されているため)。

「ユーザー」内の「doSomething」アクションにコードを配置しても、コンテキストが必要なため機能しません。

それを行う方法はありますか?

ありがとう

4

1 に答える 1

0

どうやらEmberでは、状態が同じコンテキストオブジェクトで呼び出された場合、アウトレットは接続されません(または、そもそも状態に入ることさえありません)。これを修正する方法は、単に新しいコンテキストを提供することであるため、「doSomething」を次のように置き換えます。

doSomething: function(router, event) {
  router.transitionTo('user', {username: event.context.username});
}
于 2012-10-30T09:52:52.833 に答える