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
(promise term)。
http://myApp.com/test
私の期待は次のとおりです。この約束がresolve
部分的に拒否された場合、URLを変更したくありません。理由は簡単です。拒否ロジックがユーザーを現在のページに移動させることである場合、以前のコントローラーを無駄にリロードしたくありません(したがって、この後者へのリダイレクトが必要です)。
resolve
ソースで条件付きロジックをシフトする以外のプロパティでこれを達成する効率的な方法はありますか?つまり、前のコントローラーに移動しますか?