У меня возникли проблемы с выяснением того, как передать параметр функции, которая является частью разрешения ngRoute.Передача параметров функции разрешения
В моем случае я делаю вещи с жетонами. Эти маркеры напечатаны, поэтому вы не можете использовать один и тот же токен для подтверждения и отправки по электронной почте и переадресации пароля. Вот как мои маршруты определены:
.when("/confirm/:token", {
controller: "confirmEmailController",
templateUrl: "/app/views/confirmEmail.html",
resolve: {
tokenStatus: getTokenStatus
}
})
.when("/reset/:token", {
controller: "resetPasswordController",
templateUrl: "/app/views/resetPasswordEmail.html",
resolve: {
tokenStatus: getTokenStatus
}
})
Вот getTokenStatus
функция, которая вызывается для обоих из них:
var getTokenStatus = ["$q", "$route", "tokenService", function($q, $route, tokenService)
{
var deferred = $q.defer();
var tokenType = ???? //<-- how do I pass this?
tokenService
.getTokenStatus($route.current.params.token, tokenType)
.success(function(response)
{
deferred.resolve(true);
})
.error(function()
{
deferred.resolve(false);
});
return deferred.promise;
}];
Проблема заключается в том, что для того, чтобы избежать дублирования кода мне нужно как-то передать значение типа маркера, как отмечено в коде. Как я мог это сделать?
Я занимаюсь этим в течение последних 2 часов, но, похоже, не могу понять.
почему вы не сдадите его в маршрут сам? что было бы проще –
, где вы получаете этот токен? –
@pankajparkar: Это обходной путь, который я использую сейчас, но семантически не лучший способ. – gligoran