私は角度2のウィンドウマネージャを構築しようとしています。基本的には、ウィンドウ間(ルーターのコンセントに注入されたコンポーネント)を失うことなくスワップできます状態。たとえば、顧客のリストに変更すると、製品情報フォームを編集しています。その後、製品フォームに戻って同じ状態で見つけます...可能でしょうか?ルータ上角度2:異なるコンポーネント間でスワップすることなく、それらを破壊する
答えて
これは私がこの要件をどのように超えたかです。
ルートが変更されると、ウィンドウコンポーネントは破棄されます。したがって、これらのウィンドウインスタンスの間に状態を保存するには、手動でそれを注入されたサービスに格納する必要がありました。
各ウィンドウコンポーネントの状態を保存してロードするには、ルータが提供するライフサイクルフック、onActivate(next、prev)およびonDeactivate(next、prev)を使用しました。
EDIT
は一方で、私はこの機能を要求issue on Angular 2 github repoを開きました。
どのように保存しましたか?状態? 'window'オブジェクトを使用していますか?私はそれを働かせることはできません。 –
私は自分のビューに注入されたサービスに状態を保存しています – cangosta
私は 'service'の部分を理解していますが、あなたは正確に何を保存しましたか?私は 'classのインスタンス'と 'window'オブジェクトで失敗しました。それ以外に何を保存するのですか? –
チェックアウトcanReuse
:canReuse in angular2 api docs
あなたはそれをルータを指定した場合、そこから離れて切り替えるときに文句を言わないあなたのコンポーネントを破壊します。
こんにちはデニス、そうです...ドキュメントを見ると、あなたは絶対に正しいです!しかし、実装の詳細(https://github.com/angular/angular/blob/b0009f03d510370d9782cf76197f95bb40d16c6a/modules/angular2/src/router/router_outlet.ts)に目を通すと、次のようになります。 "新しい子コンポーネントが既存の子コンポーネントと異なるタイプである場合、これは 'false'に解決されます。新しいコンポーネントが異なるタイプである場合、古いコンポーネントを再利用することはできません。 再利用フックは、同じ種類のコンポーネントとの間で移動する場合にのみトリガされます。 – cangosta
hmmm。私は理解するためにこれを実際に見なければならないだろう。私がそれを読む方法は、コンポーネントに何かを登録した後で、タイプを後で変更できなかった場合でした。 ['Cars']は、再利用されると常にCarsCmpに移動します。 –
私はそれをもう少し見てきました。あなたはその制限について正しいと思います。私はそれをテストせずに真であるかどうかはわかりませんが、同じルートで2つの異なるコンポーネントタイプを使用できないように見えます。しかし、大きなことのように思える。 –
- 1. Angular2:ngIfコンポーネントを破壊することなく
- 2. 角度 - コンポーネントの異なるテンプレート
- 3. 内容を破壊することなくアラートダイアログビューを再利用
- 4. は2角度:それぞれのコンポーネント
- 5. どのようにコンポーネントの破壊的なFormControlを破壊するか?
- 6. 角2 RC5 - 異なるモジュールで使用される共通コンポーネント
- 7. 角度 - コンポーネント(動的に作成されていない)を破棄することは可能ですか?
- 8. SortableJS角2.0+バインディング:異なるコンポーネントの2つのリスト間でドラッグアンドドロップする
- 9. なぜtkinter上の2つの異なるメインループウィンドウを破壊するとプログラムがフリーズするのですか?
- 10. HTML要素をクリックすることなく角度2で移動する
- 11. 角度2で2つの異なるコンポーネント間でサービスのデータ共有を行う方法
- 12. 角度2の異なるモジュールコンポーネント通信
- 13. 角度の異なる2つのベースルート
- 14. 異なるサイト間でダウンロード速度が大きく異なる
- 15. 角度ルーティング:異なるルータリンクから同じモジュール(またはコンポーネント)で異なる機能を呼び出す
- 16. ドッカーマシンタイムアウト - マシンを破壊することなく修正する方法?
- 17. ビューからアクティビティを破壊する方法は?またはそれらの両方を破壊する方法?
- 18. 同じセレクタでコンポーネントを拡張する - 角度2 /角度CLI
- 19. 角2:異なるルート間でデータを共有する
- 20. 角2 - 異なるng2アプリ間でモジュールを共有する
- 21. 角2:異なる子コンポーネントで同じ親コンポーネントを使用できますか?
- 22. localStorageアイテムを破壊する方法 - 角度
- 23. 角度2 - 動的コンポーネントのバインドが壊れているのはなぜですか?
- 24. 角度2のコンポーネントを共有する
- 25. 角度2のコンポーネントをリフレッシュする
- 26. 角度2のテーブルに異なるテンプレートを追加する
- 27. 角度2出口の内容を破壊して再ロード
- 28. 間で異なる何これらの2つのSQL
- 29. htmlテーブルと角度2コンポーネント間の2ウェイデータバインディングを実現する方法
- 30. 角度のあるサービスインスタンスをどのように破壊するのですか?
つまり、別のコンポーネントに移動するときにコンポーネントが破壊されるのを防ぐ方法がありますか? – cangosta