我在一个问题上一直在苦苦挣扎,我需要从指令范围更新父obj。我需要使用$ http获取一些数据,并将这些数据与原始父Obj中的属性相匹配。
然而,在执行此操作后,视图会更新,但是以某种方式绑定到这些视图的模型将变为未定义。由于视图是使用新数据更新的,因此模型在此之后变得不确定。
直到现在我才知道,$ http触发$ digest,所以我认为这是我问题的原因。
我可以做些什么来避免我的模型变得未定义,并且获取的值在原始对象中保持不变。
在我附上一个wrking plnkr之前,为了清楚起见。这就是我的意思:
我有一个obj $scope.Obj
。我已使用双向绑定(如
<input ng-model = Obj.something.something2[$index]/>
现在说我做了一个API调用并将$ scope.Obj中的something2更新为:
$scope.Obj.something.something2 = APIResponse.something3
来自新对象something3的值在UI上可见,但在此后面的后端
$scope.Obj.something.something2[$index]
变得不确定。
请提出可能的原因......
答案 0 :(得分:0)
其他模型正在变得未定义,因为您正在替换该对象。相反,您应该使用angular.extend
。
angular.extend($scope.Obj.something.something2, APIResponse.something3);
有关详细信息,请参阅AngularJS angular.extend API Reference。