私はそれに2つのオブジェクトを持つVMがあります。Angularjs:ウォッチオブジェクトと元のオブジェクトと比較
vm.obj = {
intObj1: {
title: 'title1'
},
intObj2: {
name: 'name1'
}
}
vm.objがビューにバインドされている(私は構文としてコントローラを使用しています)
を私はので、私はlodashを使用してモデルをクローン化された元のデータを持つようにしたい:
:var originalModelState = _.cloneDeep(vm.obj);
私は元の状態に比べてモデルの変化を見ています
$scope.$watch('vm.obj', function(newValue, oldValue){
if (newValue !== originalModelState){
}
}, true);
悲しいことに、newValue !== originalModelState
は常に異なっており、参照が異なるため予期されています。私はとoldValue
を比較しようとしましたが、例えばユーザがvm.obj.intObj1.title = 'new title'
のようなプロパティを変更して、元の値に戻すと問題が発生します。 `vm.obj.intObj1.title = 'title1' VMが検出できません。元の値と同じです。これどうやってするの ?
感謝を。これはトリックを行います。 – MDB