2016-03-27 15 views
1

ルーティングに関するヘルプが必要です。私は別のルート間を移動している限り、ブラウザの前と後ろのボタンを含め、そのほとんどは正常に動作します。しかし、私はちょうど/route/:idの内容を変更し、コンポーネントの再初期化を避けるために、重量のあるコンポーネント(youtube player)(ルート)を持っています。だから私はLocation.go(:id)を使ってURLを修正する。Angular2ルーティング、ヘビーページ、ナビゲーションのシミュレート

しかし、ブラウザの前後のボタンが正しく機能しません。 Location.subscribeを使ってブラウザのイベントをフックしたり、コンテンツを変更したり、移動したり移動したりできます。しかし、前後のボタンは動作していません。私が(location.go()へ)URLに戻ると、転送はありません。私は2回戻れません。

誰かが私に戦略を与えることができたら嬉しいです...私はサークルに入っています。 Location.go(:id)のように見えます。

答えて

1

重いコンポーネントにCanReuseを実装してtrueを返すだけで、コンポーネントインスタンスは保持され、戻ったときに再追加されます。

+0

入手しました。ありがとう。しかし、前と後ろのボタンが正しく動作していないのですが、別のIDで同じルートにいるときです。それ以上に掘り下げていきます。 – jeff

+0

'Location.go()'は使用しないでください。代わりに 'this.router.navigate ...()'を使用してください( 'Router'をコンポーネント/サービスに注入する必要があります(ROUTER_PROVIDERS'をコンポーネントに追加しないでください)' bootstrap(...) 'のみ –

+0

ナビゲート(別のパラメータだけが異なっていると 'canReuse'が効かなくなってしまうかもしれません(自分でそれほど遊んだことはありません)。ルータはとにかく機能完了とはみなされません。改善する方法と進める方法 –

関連する問題