AngularJS の $observe メソッドと $watch メソッドの違い
AngularJS は Watcher と Observer の両方を利用して $scope オブジェクトの変更を監視します。どちらも $scope の変更に反応しますが、この 2 つには重要な違いがあります。
$observe:
- Attributes オブジェクトで利用可能なメソッド
- DOM 属性の値の変更のみを監視します
- 主にディレクティブ内で使用されます
- 補間 ({{}}) を含む属性の監視に適しています
$watch:
- Scope オブジェクトのメソッド
- 関数または文字列のいずれかの「式」を監視します
- 文字列は Angular として評価されます{{}} を除く式
- コントローラーやリンク関数で使用可能
- モデル/スコープのプロパティを観察するためによく使用されます
非同期の性質補間を含む属性:
補間を含む属性はすぐには評価されません。したがって、これらを非同期に処理するには、$observe と $watch が不可欠です。
推奨事項:
分離されたスコープが使用されていない場合は、$watch が推奨されます。補間を含む属性を持つ分離されたスコープの場合、一貫性を保つために $observe を優先する必要があります。
使用例:
- $observe: attr1= の値を確認してください。ディレクティブ内の「Name: {{name}}」。
- $watch: コントローラーの myModel.some_prop プロパティを監視します。
追加メモ:
- $observe と $watch は両方とも各ダイジェスト サイクル中に実行されます。
- 独立したスコープを持つディレクティブでは、@ 構文の場合、補間属性に対して $observe または $watch を使用できます。
- 直接評価 ($eval()) は、数値、ブール値、または定数文字列を含む属性に使用できます。
以上がAngularJS の $observe メソッドと $watch メソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。