Angularjs 代码中的$scope.apply()导致具有scope.apply()的单元测试出错

Angularjs 代码中的$scope.apply()导致具有scope.apply()的单元测试出错,angularjs,jasmine,Angularjs,Jasmine,我在控制器文件中有一个函数 function getMeData(){ service().then(function(response){ vm.arrayOfObj = response; getMeValueUpdated(someresponse); }) } function getMeValueUpdated(someresponse){ for(i=0;i<=vm.arrayOfObj.length;i++){ if(condition){

我在控制器文件中有一个函数

function getMeData(){
 service().then(function(response){
   vm.arrayOfObj = response;
  getMeValueUpdated(someresponse);
})
}


function getMeValueUpdated(someresponse){
  for(i=0;i<=vm.arrayOfObj.length;i++){
    if(condition){
       vm.arrayOfObj[i] = someresponse
  }
 }
$scope.apply(); // to update data on view
}
当到达scope.apply in代码时,测试抛出已经在进行的错误摘要周期


我知道如果没有“砰”的一声,预测解决方案是太难了。但是一些提示可能会有所帮助。

您确定在这种情况下,
$scope.$apply()
是必需的吗?这段代码看起来都是代码角,可以检测到已经发生的变化;虽然这是伪代码,但在实际不需要时错误地添加
$scope.$apply()
在angular中是一个非常常见的问题。您已经在更新
vm.arrayOfObj
,这将导致摘要循环。您不需要调用
$scope.apply()
谢谢您的回复。scope.apply是必需的,因为如果没有它,UI将不会使用新值进行更新。
it('title', function(){
  ...
  defer.resolve(fakeresponse);
  $scope.apply();
  ...
})