如何处理由$ http

时间:2015-11-09 16:25:59

标签: angularjs http digest

我在一个问题上一直在苦苦挣扎,我需要从指令范围更新父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] 

变得不确定。

请提出可能的原因......

1 个答案:

答案 0 :(得分:0)

其他模型正在变得未定义,因为您正在替换该对象。相反,您应该使用angular.extend

angular.extend($scope.Obj.something.something2, APIResponse.something3);

有关详细信息,请参阅AngularJS angular.extend API Reference