コントローラーを1回だけ作成する方法を調査しましたが、本当に良いソリューションは見つかりませんでした。AngularJSコントローラを1回だけ作成する
- はmasterControllerを作成し、その範囲でmasterControllerScopeでコレクション内のすべての作成したコントローラを保存するために溶液を塗布$ rootScopeにコントローラリストを作成し、ここで作成したコントローラ
- を追加します。
Aは、いくつかののみ回避策を発見しました
は、だから私のテンプレートをロードすると、私は、コントローラ、agregateする特別myServiceというを使用する必要がありますlsoサービスはチェックを行う必要があります。コントローラがすでに作成されている場合は、古いものをロードする必要があります。新しいコントローラはロードしないでください。
アルゴリズムは単純なようですが、角度をつけて使用すると醜いです。私は角度が非常に弱いことを願って、これは私がより良い解決策を見いださなかった理由です。
あなたはより良いアイデアや解決策を提案できますか?私はより明確化を追加する
...私はすでに基本ライブラリで実装されている必要があるものやサービスを再設計必要可能:
ng-app=singleApplication
|-ng-view
SingleApplicationがのためのテンプレートを管理するためにNG-ルートを持っていますng-view各テンプレートにはという固有のコントローラがあります。現在のビューと異なる場合はいつでも、私はコントローラの作成を参照してください。しかし、テンプレートが一度ロードされた場合は、サーバーにデータを要求しないでください。私は、古いデータ、テーブル、コントロールでテンプレートを表示する必要がありますが、コントローラが毎回作成されている場合はできません。 コントローラスコープ(この)にロードされたすべてのデータは、すべてのキーがコントローラスコープにユニークですが、私は$スコープまたは$ rootScopeにデータを保存する場合、私は良い保証はありません。すべてのコントローラが、一つのモジュールの下に作成されている場合
次の例をご覧くださいそのモジュールを持つコントローラができますが、一方のコントローラを作成し、それを使用しようとしていますモジュール間で右か? –
あなたは何を達成しようとしていますか?あなたがテンプレートでフィルタを使用するかコントローラ内のテーブルのnページに移動すると、すべてのデータがリセットされた場合、角度が –
でないものを実行するためのより簡単な方法があります。モジュールは1つしかなく、余分なサーバー要求があります。ですから、コントローラを作成する能力は一度しか必要ありません。 – Sergii