[解決済み] AngularJS - 子スコープへのアクセス
2022-09-27 06:40:35
質問
以下のようなコントローラがある場合。
function parent($scope, service) {
$scope.a = 'foo';
$scope.save = function() {
service.save({
a: $scope.a,
b: $scope.b
});
}
}
function child($scope) {
$scope.b = 'bar';
}
の適切な方法は何ですか?
parent
読む
b
から
child
? を定義する必要がある場合
b
で
parent
と仮定すると、意味的におかしくなりませんか?
b
に関連する何かを記述するプロパティである
child
に関連し、かつ
parent
?
更新しました。
さらに考えてみると、もし複数の子供が
b
の競合が発生します。
parent
その上で
b
を取得することができます。私の疑問は残りますが、どのようにすれば
b
から
parent
?
どのように解決するのですか?
AngularJSのスコープはプロトタイプ継承を使用しており、子スコープでプロパティを検索する場合、インタプリタは子から始まるプロトタイプチェーンを検索し、プロパティが見つかるまで親を続けますが、その逆はありません。
この問題についての Vojta のコメントを確認します。 https://groups.google.com/d/msg/angular/LDNz_TQQiNE/ygYrSvdI0A0J
一言で言えば 親スコープから子スコープにアクセスすることはできません。
あなたの解決策
- 親でプロパティを定義し、子からそれにアクセスする (上のリンクを読んでください)
- 状態を共有するためにサービスを使用する
-
イベントを通じてデータを渡す
$emit
はルートスコープまでイベントを親に上向きに送信し$broadcast
は下位にイベントを送ります。これは、意味的に正しいことを維持するのに役立つかもしれません。
関連
-
[解決済み] エラーです。[$injector:unpr] 不明なプロバイダです。ルートプロバイダ
-
[解決済み] md-selectでデフォルト値を設定する方法
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] 子コントローラから親スコープにアクセスするAngularJS
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】typeerrorは、未定義のプロパティ'data'を読み取ることができません。
-
[解決済み] Angular 1.2+ で ng-bind-html-unsafe を複製するために $sce.trustAsHtml(string) を使用するにはどうしたらよいですか?
-
[解決済み] どのようにangularJSでrouteProviderとlocationProviderを設定するのですか?
-
[解決済み] ng-repeat内で$indexを使用して、クラスを有効にしてDIVを表示するにはどうすればよいですか?
-
[解決済み] AngularJsでng-Cloakディレクティブを実際に使用する方法とは?
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
[解決済み] Angular JSによるシンプルなポップアップ
-
[解決済み] angular.serviceとangular.factoryの比較
-
[解決済み] AngularJSでEnterキーを押したときにフォームを送信する
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?