angular jsを使用して、ウィンドウの非表示と表示を可能にする複雑なビューレイアウトを管理するにはどうすればよいですか(など)。同じURLパスが使用される場合、ウィンドウを再度開いているときに状態やスコープを失うことなく管理する必要があります。これは、アイテムのリストを表示し、それぞれを他のウィンドウと並行して開くようなものです。angular とルートを使用すると、以前のスコープは破棄されます。
(#/itemlist -> #/itemlist/item/1 and #/itemlist/item/2)
- 1 つのアイテムが複数のコンポーネント (2 つのウィンドウ。移動してください) を同じ状態で開き、angular ui 状態によって管理されます。
- 各状態には独自のコントローラーがあり、各コントローラーには独自のスコープがあります。
- スコープの継承は、後で拡張プロトタイプで設計できますが、ビュー階層から独立している必要があります。
- コントローラーとビューはスコープの破棄によって破棄されます。または、すべてのビューが破棄された場合は、コントローラーとスコープも破棄する必要があります (まだ完全には実装されていません)。
- ルートがリコールされ、スコープが存在する場合、相関ビューが再アクティブ化されます。
アイデアは、コントローラーと、スコープを介して関連するビューを管理/保存する 2 つのサービスを使用することです。両方のコンポーネントの管理をシャドーイングするために、汎用コントローラー$stateProvider
を使用してコントローラー/ビュー インジェクションを解決します。
$stateProvider
.state({
name : 'item',
url: '/item/:id',
views:{
'genericCtrl' : {
resolve : {
views : function() { return ['TestView', 'TestView']; },
ctrl : function() { return 'TestCtrl' ; }
},
controller : 'GenericCtrl'
}
}
})
コンセプトが機能するかどうか、角度に独自の手段があるかどうか(まだ見つけていない)、または別のより良い解決策が存在するかどうかはわかりません。感想、改善点などを書き込んでください。これが、私たちの大きなアプリケーションの基本概念になるはずです。