在 Angular 1.6.2 和 UI 路由器中,我希望仅在服务器上建立用户具有访问页面的正确角色/权限后才显示页面的内容。
没有$scope.apply()
catch()
不会被解雇,但由于某种原因,当我把它放在那里时,情况并非如此。没有变量似乎不会更新视图$scope.apply()
。vm.showContent
我没有收到 Angular 或 JS 错误,所以我说我会省略任何其他相关代码,因为我认为没有其他问题会导致问题。
查看/HTML
<div ng-show="data.showContent">
// my html, not to be shown until vm.showContent is true
</div>
控制器
// more JS
var vm = this;
vm.showContent = false;
// more JS
vm.hasRole = function (role, toState, event) {
Auth.hasRole(role).then(function (data) {
vm.showContent = true;
// without this nothing is happening with the view
$scope.apply();
alert('has role'); // firing successfully
}).catch(function () {
alert('does not have role') // firing also if I add $scope.apply();
if (event != false) {
event.preventDefault();
$state.go('no-permission');
}
});
}