0

ディレクティブのスコープを宣言するときに、記号「@」、「=」に出くわしました。

'='バインディングが'@'に優先される場合、またはその逆の場合はいつになるのでしょうか。

4

1 に答える 1

2

公式ドキュメントから、あなたは読むことができます:

  1. @または@attr-ローカルスコーププロパティをDOM属性の値にバインドします。DOM属性は文字列であるため、結果は常に文字列になります。属性名が指定されていない場合、属性名はローカル名と同じであると見なされます。スコープのウィジェット定義が与えられた場合:{localName:'@ myAttr'}、ウィジェットスコーププロパティlocalNameは、hello{{name}}の補間値を反映します。name属性が変更されると、ウィジェットスコープのlocalNameプロパティも変更されます。名前は、(コンポーネントスコープではなく)親スコープから読み取られます。

  2. =または=attr-ローカルスコーププロパティと、attr属性の値を介して定義された名前の親スコーププロパティとの間に双方向バインディングを設定します。属性名が指定されていない場合、属性名はローカル名と同じであると見なされます。スコープのウィジェット定義が与えられた場合:{localModel:'= myAttr'}、ウィジェットスコーププロパティlocalModelは、親スコープのparentModelの値を反映します。parentModelへの変更はlocalModelに反映され、localModelへの変更はparentModelに反映されます。

したがって、双方向バインディングが必要な場合は、=...を使用する必要があります。

于 2012-12-14T13:28:46.280 に答える