モデルにバインドされているコントローラーにテキストボックスがありname
ます。コントローラ内にディレクティブがあり、同じモデルにバインドされているディレクティブ内に別のテキストボックスがありますname
。
<div class="border" ng-controller="editCtrl">
Controller: editCtrl <br/>
<input type="text" ng-model="name" />
<br/>
<tabs>
Directive: tabs <br/>
<input type="text" ng-model="name"/>
</tabs>
</div>
mod.directive('tabs', function() {
return {
restrict: 'E',
transclude: true,
template:
'<div class="border" ng-transclude></div>',
};
});
外側のテキストボックスに何かを入力すると、内側のテキストボックスに反映されますが、内側のテキストボックスに何かを入力すると、機能しなくなります。つまり、両方のテキストボックスに同じ値が反映されなくなります。
http://jsfiddle.net/uzairfarooq/MNBLd/の例を参照してください。
また、双方向バインディングattr(scope: {name: '='}
)を使用してみましたが、構文エラーが発生します。使用しscope: {name: '@'}
ても同じ効果があります。
どんな助けでも大歓迎です。
受け入れられた答えに加えて、この記事は私が子供のscpoの典型的な継承を理解するのに本当に役立ちました。スコープに問題がある方は、よくお読みになることを強くお勧めします。