が、私はこのようなオブジェクト持っています:角度がそれにオブジェクトの変更を適用しませんプロパティ
$scope.user = {key: 'j16er48', name: 'Foo', title: 'Bar'}
を、テンプレートがある:
今<div ng-if="user.key">{{user.name}}</div>
、私はkey
プロパティの値を変更した場合null
またはfalse
を直接入力すると、div
は表示されません。しかし、私がオブジェクト全体をこれに変更した場合:
$scope.user = {key: false, name: 'Foo', title: 'Bar'}
何も起こりません。角度はまだ古いオブジェクトと古い値のkey
プロパティを見ているようです。
また、user
に新しいオブジェクトを割り当てた後に$scope.$apply()
を使用しようとしましたが、それでもチャンスはありません。
何か不足していますか?
== UPDATEそんなにテスト後 ==
私は角度範囲で非常に奇妙な行動を発見しました。この問題は、参照(または双方向バインディング)による不要な割り当てによって発生します。
私はdefaultUser
というオブジェクトを持っています:{key: false, name: 'Foo', title: 'Bar'}
です。これを仮定すると:私は再びdefaultUser
user
へオブジェクトを割り当てるしようとしたとき
var defaultUser = {key: false, name: null, title: null};
$scope.user = defaultUser;
// here I change a property of $scope.user
$scope.user.key = 'j16er48';
$scope.resetUser = function(){
// Now defaultUser.key equals 'j16er48'
alert(defaultUser.key);
// That's why this line does nothing
$scope.user = defaultUser;
}
だから、私はdefaultUser
が変更さuser
に等しいされているのに対し、ISは、リセットされたと思いました。たった今。
これは正常ですか? Angularはすべての割り当てを参照すると仮定していますか?それは双方向の拘束ですか?私は夢中になったのですか?
https://jsfiddle.net/amraei/g1b5xomz/3/
コードに何か誤りがあります。それを分離してプランナーに投稿できますか? –
問題が再現できません。 – Rob
私はあなたがやろうとしていることを思いついたのですか:https://jsfiddle.net/g1b5xomz/ – Rob