Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $scope.apply正在发射“;捕获;以及;然后";_Javascript_Angularjs_Angularjs 1.6 - Fatal编程技术网

Javascript $scope.apply正在发射“;捕获;以及;然后";

Javascript $scope.apply正在发射“;捕获;以及;然后";,javascript,angularjs,angularjs-1.6,Javascript,Angularjs,Angularjs 1.6,在Angular 1.6.2和UI router中,我希望在服务器上确定用户具有访问页面的正确角色/权限后,仅显示页面内容 如果没有$scope.apply()catch()不会被解雇,但由于某种原因,当我把它放在那里时,情况并非如此。如果没有$scope.apply(),则vm.showContent变量似乎无法更新视图 我没有得到任何角度或JS错误,所以我说我会省略任何其他相关的代码,因为我假设没有其他原因导致问题 视图/HTML <div ng-show="data.showCont

在Angular 1.6.2和UI router中,我希望在服务器上确定用户具有访问页面的正确角色/权限后,仅显示页面内容

如果没有
$scope.apply()
catch()
不会被解雇,但由于某种原因,当我把它放在那里时,情况并非如此。如果没有
$scope.apply()
,则
vm.showContent
变量似乎无法更新视图

我没有得到任何角度或JS错误,所以我说我会省略任何其他相关的代码,因为我假设没有其他原因导致问题

视图/HTML

<div ng-show="data.showContent">
 // my html, not to be shown until vm.showContent is true     
</div>

查看错误响应值:

//}).catch(function () {
//LOG error response
}).catch(function(errorResponse) {
    console.warn(errorResponse);
    alert('does not have role') // firing also if I add $scope.apply();
    if (event != false) {
        event.preventDefault();
        $state.go('no-permission');
    }
});
$scope.apply()
可能抛出:

当在承诺链中的成功处理程序中抛出错误时,$q服务将跳到该链中随后的第一个拒绝处理程序

有关错误的详细信息,请参阅


AngularJS 1.6将抛出的错误与常规拒绝处理相同 对于以前的版本,成功和拒绝处理程序中抛出的错误将创建控制台错误消息。AngularJS 1.6已更改为将抛出的错误与常规拒绝处理相同:

$q: 由于,从承诺的onCompleted或onRejection处理程序抛出的错误与常规拒绝处理程序的处理方式完全相同。以前,它还将传递给
$exceptionHandler()
(除了以错误为理由拒绝承诺之外)


可能会触发两次?一旦失败,一旦成功,如果传递给的函数随后抛出,将调用catch块。
//}).catch(function () {
//LOG error response
}).catch(function(errorResponse) {
    console.warn(errorResponse);
    alert('does not have role') // firing also if I add $scope.apply();
    if (event != false) {
        event.preventDefault();
        $state.go('no-permission');
    }
});