學習Angular並遇到問題我似乎找不到「好」的答案。我一直在關注official Tutorial,並且與我正在進行的項目有類似的設置。如何使失敗的路由解析承諾加載不同的模板URL?
$ routeProvider .when電話詳細信息案例根據電話列表頁面中單擊的電話名稱獲取特定的.JSON文件。問題是,如果您輸入的電話名稱沒有與之關聯的.JSON文件,路由仍會繼續並顯示空白頁面。我試圖弄清楚如何防止這種情況。
我已經得到儘可能爲.when路由添加一個決心。但是,我只能阻止視圖更改或使用$ location.path重定向。這些都不是理想的。
我該如何着手顯示沒有JSON文件的手機的「404頁面」視圖?在我的腦海中,如果GET請求使用404響應,我會顯示一個不同的templateUrl,但似乎無法使其工作。
任何幫助將是偉大的!
這是我到目前爲止的代碼:
我的路線處理。
.when('/game/:Game', {
templateUrl: 'views/game-detail.html',
controller: 'GameDetailCtrl',
resolve: {
myData: ["Games", "$location", "$q", "$timeout",'$rootScope', function(Games, $location, $q, $timeout,$rootScope) {
var def = $q.defer();
var path = $location.path().toString().substring(6);
// Games service
Games.get({gameName: path}, function(game, s) {
}).$promise.then(
function(data) {
// found game data
def.resolve(data);
},
function(error) {
// couldn't find JSON file
def.reject(error);
}
);
return def.promise;
}]
}
}).when('/pageNotFound', {
templateUrl: 'views/error.html'
})
根範圍路由改變錯誤監聽:
$rootScope.$on("$routeChangeError",
function(event, current, previous, rejection) {
console.log("failed to change routes");
//$location.path('/pageNotFound');
});
貴' $ routeChangeError'處理程序火嗎? – ExceptionLimeCat 2015-03-31 21:33:34
是的。它會觸發並識別失敗的路線。 – Taz 2015-04-01 22:05:17