4

を使用して Web アプリを作成しbackbone.marionetteました。からMarionette.ItemView、イベントをトリガーするとdocument.location.hash

 document.location.hash = '#tasks/' + this.model.get('id');

1.a) URL を変更する 1.b) appRoutes をトリガーする

Routing.navigate同じ場所からトリガーした場合:

router.navigate('#tasks/' + this.model.get('id'))

2.a) 期待どおりに URL を変更します。2.b) appRoutes をトリガーしません。

2.b が発生する理由は何ですか? 問題はどこにあるのでしょうか?

ありがとう。

var Router = Marionette.AppRouter.extend({
    appRoutes: {
        'tasks': 'tasks',
        'tasks/:id': 'taskDetail',
        '*defaults': 'tasks'
    }
});
4

1 に答える 1

9

追加する必要があります{trigger: true}

router.navigate('#tasks/' + this.model.get('id'), {trigger: true})

通常、ルーターを拡張してから、それを自動的に追加する独自のナビゲートを追加し{trigger: true}ます。開発者がそのようにした理由は理解できますが、それは私が今まで使ったことのない方法です:)

于 2012-06-30T08:26:30.173 に答える