在使用$scope.$apply()的时候,如果本身方法就在angular的作用范围之内是会报错的,所以在应用apply之前需要判断一下当前是否在angular中,
需要用到$rootScope.$$phase,他是判断angular里面的检测机制
---
附上一小段代码
$rootScope.closeModal= function(){
$("#GMODALCONFIRM").modal('hide');
if (!$rootScope.$$phase) {
$rootScope.$apply(backFun,funParam);
}else{
backFun.call(this,funParam);
}
};