В традиционном веб-приложении, управляемом данными, мы часто пытаемся загрузить ресурс на основе идентификатора, переданного в URL-адресе. Если ресурс не существует, мы возвращаем страницу 404.Как обрабатывать ресурс, не найденный с помощью маршрутизации AngularJS
Как мы должны достичь того же в AngularJS? Я следовал AngularJS телефон каталог учебника и в настоящее время, выполнив следующие действия следует ресурс не существует (обратите внимание, это использует угловую $resource
службы):
controllers.controller('PhoneDetailCtrl', ['$scope', '$routeParams', '$location', 'Phone',
function($scope, $routeParams, $location, Phone) {
$scope.phone = Phone.get({ phoneId: $routeParams.phoneId },
function(phone) {
$scope.mainImageUrl = phone.images[0];
},
function(response) {
if (response.status === 404) {
$location.path('/404'); // show phone not found page
}
});
}]);
Является ли это рекомендуемый подход? Учитывая, что мне нужно будет сделать это практически на каждом ресурсе, я задался вопросом, будет ли он лучше обрабатываться в пределах $routeProvider
?
Это отлично работает, спасибо. Единственная проблема, которую я обнаружил, заключается в том, что она должна быть 'if (error.status === 404)' not 'if (error.status === '404')'. –
@BenFoster извините, это была опечатка –
Не могли бы вы объяснить, что такое Phone в этом примере? –