1

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'
        }
    }
})

このフィドルの例を参照してください

コンセプトが機能するかどうか、角度に独自の手段があるかどうか(まだ見つけていない)、または別のより良い解決策が存在するかどうかはわかりません。感想、改善点などを書き込んでください。これが、私たちの大きなアプリケーションの基本概念になるはずです。

4

0 に答える 0