Я использую resolve
, чтобы определить, действительно ли идентификатор в URL-адресе (по вызову API), прежде чем принимать пользователя на эту страницу.Угловой - маршрут не ждет разрешения
Однако, что я нахожу на короткое время, оно действительно входит в страницу, указанную на моем маршруте.
Как только вступить, как только результат вернется.
Так что мой код выглядит маршрут:
.when("/story/:id",
{
templateUrl: "views/story.html",
controller: 'Story' ,
controllerAs: 'story',
resolve:{
"check":function($location, usefulService, $route){
var myPromise = usefulService.isValidQuestionID($route.current.pathParams.id);
myPromise.then(function(result) {
if (result == false){
$location.path('/');
}
})
}
}
}
)
, а затем фактический метод API вызов в моей службы:
self.isValidQuestionID = function(id) {
return $http.get(API + '/isValidQuestionID', {
headers:{
idtocheck: id
}
})
.then(function(res){
return res.data.success;
})
}
Любая помощь приветствуется,
Спасибо.
Haha - привет. я собирался прокомментировать предыдущий пост, однако подумал, что здесь легче. – userMod2
Удивительный! Это работает. Однако я не понимаю 100%, выполнив отклоненное обещание, что мешает ему загружать страницу, как это было раньше? – userMod2
На самом деле поймите это сейчас, «создайте отложенное, а затем немедленно отклоните его» – userMod2