4

サービスを使用してアイテムのリストをロードするビューがあります。<< >> ボタンで項目間を移動しながら、常に 1 つの項目のみを表示しています。

Angular のルーティング システムをトリガーせずに、ブラウザーのアドレス バーのアドレスを変更し、ブラウザーの履歴にレコードを追加する方法はありますか?

私が使用する場合、私はそれを知っています:

location.go('users/3');

上記のことを行いますが、Angular のルート システムもトリガーし、サービスを再度呼び出します。

編集:

それは場所の機能のようです

location.replaceState('users/3');

私がやりたいことに近づいています-Angularの内部をトリガーせずにブラウザーでURLを変更しますが、残念ながら、新しい場所を一番上にプッシュするのではなく、履歴の最新の場所を置き換えます。

4

1 に答える 1

1

サービスをコンポーネントprovider:リストに追加しないと、このサービスの新しいインスタンスを取得できません。に登録するだけで、代わりにサービスをグローバルにしbootstrap(AppComponent, [MyGlobalService])ます。

CanReuse の実装は、Angular 2も参照してください。異なるコンポーネントを破棄せずに交換すると、同じルートが再利用されたときにコンポーネントが再初期化されるのを防ぐのに役立つ場合があります。

于 2016-01-19T12:21:52.703 に答える