ng-form ディレクティブは angular js で新しいサブスコープを作成しますか?
30分ほどグーグルで検索していましたが、あまり見つかりませんでした。
ng-form ディレクティブは angular js で新しいサブスコープを作成しますか?
30分ほどグーグルで検索していましたが、あまり見つかりませんでした。
いいえ。このプランカーから、新しいスコープを作成しng-form
ないことがわかります。
<h2>Parent Scope</h2>
<input ng-model="name" />
<p>Hello {{name}}!</p>
<h2>ng-form</h2>
<ng-form>
<input ng-model="name" />
<p>Hello {{name}}!</p>
</ng-form>
<h2>ng-if</h2>
<div ng-if="true">
<input ng-model="name" />
<p>Hello {{name}}!</p>
</div>
これは、スコープにプリミティブを配置してはならない理由と同じです。最初の 2 つの入力を変更すると、name
変数は 3 つすべてで変更されます。ただし、最後の入力を変更すると、そこでのみ変更されます。その後、最初の 2 つの入力ボックスに加えられた変更に応答しなくなります (以前は親スコープのname
変数を使用していましたが、そのスコープ内から対話すると、独自の変数を持ちます)。