路由时两个页面能公用一个控制器吗,比如
javascript
.state('a', { ... controller : 'aaaController' }) .state('b', { ... controller : 'aaaController' })
如果行的话,控制器是独立的作用域还是公用的,比如说我在控制器里声明了个变量i
,在a页面中改变了i
的值,当我路由到b页面时,i
的值会跟着变吗
伊谢尔伦2017-05-15 16:52:44
私も最近 angularjs を学んでいます。投稿者が言及した問題については、簡単なデモンストレーションを作成できます。
次の HTML 構造、異なるビュー、同じコントローラーがありますリーリー
コントローラーコードの一部:リーリー
まず表示ボタンをクリックすると、出力結果は次のようになります:
スコープ構造もツリー状になっており、上記の HTML 構造には 2 つのスコープがあります。
別の明らかな例を見てみましょう:
リーリー
結果は 2 回出力され、メソッドが 2 回実行されたことを示します。スコープが共有されている場合、重複して実行されることはありません。
。
お役に立てれば幸いです!我想大声告诉你2017-05-15 16:52:44
このように使用するのは奇妙です、このように使用できるかどうかわかりません
個人的には、通常の使用法は次のとおりだと思います:
1 ページ、1 コントローラー
コントローラー間で変数とメソッドを共有する必要がある場合は、作成したサービスを挿入するだけで、変数とメソッドを別のコントローラーに保存するサービスを angular で構築できます。
サービス
Angular サービスは、依存関係注入 (DI) を使用して相互に接続される置換可能なオブジェクトです。サービスを使用して、アプリ全体でコードを整理および共有できます。
https://docs.angularjs.org/guide/services
伊谢尔伦2017-05-15 16:52:44
ルートを切り替えた後、コントローラーのライフサイクルは終了し、現在の $scope
とサブスコープは無効になります。
複数のコントローラー間でデータを共有する必要がある場合は、サービスを使用できます。