[解決済み】$watch an object
2022-03-27 01:02:11
質問
辞書の変更を監視したいのですが、なぜかwatchコールバックが呼ばれません。
私が使っているコントローラはこちらです。
function MyController($scope) {
$scope.form = {
name: 'my name',
surname: 'surname'
}
$scope.$watch('form', function(newVal, oldVal){
console.log('changed');
});
}
以下は フィドル .
名前や苗字が変わるたびに$watchコールバックが発生することを期待しますが、発生しません。
正しい方法は何ですか?
どのように解決するのですか?
電話
$watch
と
true
を3番目の引数として指定します。
$scope.$watch('form', function(newVal, oldVal){
console.log('changed');
}, true);
JavaScript で 2 つの複雑なオブジェクトを比較する場合、デフォルトでは、2 つのオブジェクトが同じものを参照しているかどうかを尋ねる "reference" の同等性がチェックされ、それらのオブジェクトのすべてのプロパティの値が等しいかどうかをチェックする "value" は行われません。
にあたります。
Angular ドキュメント
の場合、3番目のパラメータは
objectEquality
:
いつ
objectEquality == true
に従って、watchExpression の不等号が決定される。angular.equals
関数を使用します。後で比較するためにオブジェクトの値を保存するためにangular.copy
関数が使用されます。したがって、複雑なオブジェクトを見ることは、メモリとパフォーマンスに悪影響を及ぼすことを意味します。
関連
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】JavaScriptのオブジェクトの長さ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】react router v^4.0.0 Uncaught TypeError: 未定義のプロパティ'location'を読み取れない
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー