СУШКА параметра разрешения в $routeProvider
Каков "угловой" способ СУШКИ параметра разрешения для путей "/A" и "/B"? В моем $routeProvider я вызываю точно такую же функцию разрешения для этих сценариев и не знаю лучшего способа избежать дублирования кода в среде AngularJS.
var app = angular.module("myProject", []);
app.config(["$routeProvider",function($routeProvider) {
$routeProvider.
when("/A", {
templateUrl: "templates/A.html",
controller: "AController",
resolve: {
tokenRefresh: function(serviceA, serviceB){
if (serviceA.refreshingToken() == true)
{
return(serviceB.refresh());
}
}
}
}).
when("/B", {
templateUrl: "templates/B.html",
controller: "BController",
resolve: {
tokenRefresh: function(serviceA, serviceB){
if (serviceA.refreshingToken() == true)
{
return(serviceB.refresh());
}
}
}
}).
otherwise({
redirectTo: '/'
});
}
]};
1 ответ
Решение
resolve
в вашем случае это просто объект JSON. Почему бы не объявить об этом один раз перед вашим звонком $routeProvider
?
var resolver = {
tokenRefresh: function(serviceA, serviceB){
if (serviceA.refreshingToken() == true)
{
return(serviceB.refresh());
}
}
};
$routeProvider.
when("/A", {
templateUrl: "templates/A.html",
controller: "AController",
resolve: resolver
}).
when("/B", {
templateUrl: "templates/B.html",
controller: "BController",
resolve: resolver
}).
otherwise({
redirectTo: '/'
});