1
我使用resolve
來確定在將用戶帶到該頁面之前,URL中的ID是否實際上是有效的(通過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;
})
}
讚賞任何幫助,
感謝。
哈哈 - 嗨。我打算對之前的帖子發表評論,但是在這裏可以更容易。 – userMod2
太棒了!這樣可行。但是,我並沒有100%的理解,通過做出被拒絕的承諾,阻止它像以前那樣加載頁面? – userMod2
其實現在明白了「創建延期,然後立即拒絕」 – userMod2