コードの 2 つのスニペットを次に示します。
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
<div ng-controller="firstCtrl">
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
</div>
<div ng-controller="secondCtrl">
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
</div>
と
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
<div ng-controller="firstCtrl">
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
</div>
<div ng-controller="secondCtrl">
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
</div>
ng-controller
here は新しいスコープを作成するため、どちらの場合もfirstCtrl
、secondCtrl
スコープはプロトタイプとしてルート スコープから継承されます。したがって、理想的には、子のプロパティが上書きされるとshadows
、親から継承された値であり、親の値は同じままです。では、なぜ 2 つのスニペットの動作が異なるのでしょうか?
また、最初のスニペットで値をfirstCtrl
変更すると、ルート スコープの値も変更されるのはなぜですか?