AngularJS におけるスコープ プロトタイプ / プロトタイプ継承のニュアンスは何ですか?
AngularJS におけるプロトタイプ継承JavaScript
- プロトタイプ継承は、オブジェクトがそのプロトタイプからプロパティを継承するメカニズムです。
- AngularJS では、スコープは通常、親からプロトタイプ的に継承します。スコープ。
例外
- スコープを持つディレクティブ: { ... } プロトタイプを継承しない 分離スコープ を作成します彼らからのparents.
ニュアンス
子スコープ プロパティの非表示
- 通常、子スコープ プロパティへの変更親スコープのプロパティには影響しません。
- ただし、バインドするときは子スコープから親スコープのプリミティブへの双方向データ。子スコープは、同じ名前の親プロパティを隠す独自のプロパティを作成します。
解決策
- オブジェクトの使用親スコープのプリミティブ (例:parentObj.someProp)。
- $parent.parentScopeProperty を使用します。
- 親スコープで関数を定義し、 child.
Ng-repeat
- Ng-repeat は子スコープを作成し、それらの子スコープの新しいプロパティに項目値を割り当てます。
- ng-repeat 子スコープから親スコープ配列内のプリミティブにバインドすると、子スコープのプロパティは独立したものになります。親配列。
- これを回避するには、親スコープでオブジェクトの配列を使用し、ng-repeat でオブジェクトのプロパティにバインドします。
スコープの分離
トランスクルードされたスコープ
- transclude: true のディレクティブによって作成されます。
- プロトタイプは次から継承します親
- ディレクティブに両方のスコープが存在する場合に兄弟スコープを分離します。
概要
- ほとんどのスコープはプロトタイプ的に親から継承しますスコープ。
- によって作成された分離スコープなどの例外が存在します。
- 注意すべきニュアンスには、子スコープのプロパティの非表示や ng-repeat の特別な考慮事項が含まれます。
以上がAngularJS スコープでのプロトタイプ継承はどのように機能するのか、またよくある落とし穴は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。