すみません、ng includeからヘッダー部分をインポートしたページを作りました(ログインボタンを表示するかどうかを決定するlogincontrollerが入っています) 同時にngrouteにログインページを定義しました。これもlogincontrollerを使用しています。データを取得した後、スコープにコールバックしましたが、同じコントローラーに2つのスコープがあるようです。これはなぜですか? (nginclude が完了すると、logincontroller 内のものが一度実行され、ログインページに入るときに再度トリガーされることがわかりました)
オンラインで説明されているように $apply() も試してみましたが、結果はエラーになります
リーリー上記はタイムアウトにコンソールログを含むコントローラーのコードです。これを出力すると、3 つの場所で同じ ngcontroller を使用しているためでしょうか。タイムアウト時のコメント call $scope.user={islogged:1} は次のように出力されますが、これは私のタスクでは異常です。これらがすべて同じであることを願います。 リーリー
$scope.user={islogged:1} のコメントを解除して実行すると、3 つのコントローラーが正常に出力されます。リーリー
================
再度テストしてみたところ、現在トリガーされている ngcontroller の値のみが変更されます。複数の ngcontroller がある場合、nginclude であっても ngview であっても、他の ngcontroller の値は変更されません。同じ ngcontroller によって変更されたデータを別の場所に同期するにはどうすればよいですか?
世界只因有你2017-05-15 16:53:08
同じスコープですか? ng-include
新しいスコープが作成されます。
確かに、各コントローラーは別個のインスタンスであり、相互に影響を与えません。データのステータスをグローバル (より高いレベル) スコープの下に置くことを検討できます。より良い方法は、サービスを通じて均一に管理することです
。例:
リーリー漂亮男人2017-05-15 16:53:08
私も同じ問題に遭遇しました。 $scope を初めて変更したとき、インターフェース上のデータは移動しませんでしたが、インターフェースが変更されると (たとえば、フェードアウトし始めたとき)、データが変更されます。 $ スコープが再び変更されると、それに応じてインターフェイスも変更されます。
$apply も使用してみましたが、エラーの長いリストが報告されます。何かがすでに使用されているなどと言われます...理解できません...解決策があることを願っています。