$watch と $observe はどちらも $scope の変更を監視するために AngularJS で使用されますが、それらの異なる機能はそれらを区別してください。それらの違いを理解することは、効果的なアプリケーション開発にとって非常に重要です。
**$observe** は特に Attributes オブジェクトに対して動作し、DOM 属性の変更のみを監視できるようにします。このメソッドはディレクティブ内で特に使用されます。その主な目的は、補間 ({{}}) を組み込んだ DOM 属性を監視することです。たとえば、attr1="Name: {{name}}" の場合、ディレクティブ内で $observe を attrs.$observe('attr1', ...).
**$ として利用できます。一方、watch** はより多用途性を提供します。 Scope オブジェクトに適用できるため、コントローラーやリンク機能など、スコープ アクセスが利用できる場所であればどこにでも展開できます。 $watch は、関数または文字列として現れる「式」を監視します。式が文字列の場合、$parsing が実行され、事実上関数に変換されます。特に、この関数は補間 ({{}}) をサポートしていません。
$watch の核心は、モデル/スコープのプロパティを監視する機能にあります。たとえば、attr1="myModel.some_prop" とします。その場合、$watch はコントローラーまたはリンク関数でscope.$watch('myModel.some_prop', ...) として利用できます。
注目に値するのは、次の $observe と $watch の違いです。分離スコープを持つディレクティブ。 「@」構文を使用すると、$observe と $watch の両方を補間を使用する DOM 属性に適用できます。これは、「@」構文が事前に補間を処理し、{{}} のない文字列を $watch に提示するという事実に由来しています。
さらに理解するには、提供されている Plunker のデモを参照することをお勧めします。さまざまなシナリオでの $observe と $watch の使用法。さらに、AngularJS の $watch 式に関する Vojta の包括的な投稿は、深い理解のための貴重なリソースとして役立ちます。
以上がAngularJS の $watch と $observe の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。