Resolve是一个有趣的属性,它可以防止显示有关处理 promise 结果(已解决或已拒绝)的某些条件逻辑的模板。
我在我的应用程序中使用它,这是一个概念示例:
.config(['$routeProvider', 'securityAuthorizationProvider',
function ($routeProvider, securityAuthorizationProvider) {
$routeProvider.when('/test', {
templateUrl: '/myCorrespondingView.tpl.html',
controller: 'MyCorrespondingCtrl',
resolve: securityAuthorizationProvider.requireAuthenticatedUser
});
}])
/myCorrespondingView.tpl.html
因此,当且仅当securityAuthorizationProvider.requireAuthenticatedUser
解决(承诺期限)时,此代码才期望显示内容。
http://myApp.com/test
我的期望是:如果此承诺resolve
部分被拒绝,我不想将 URL 更改为。原因很简单,如果我的拒绝逻辑是让用户在他的当前页面上(因此需要重定向到后者),我不想无用地重新加载以前的控制器。
resolve
除了将条件逻辑从源头转移到前一个控制器之外,是否有一种有效的方法可以通过该属性实现此目的?