在传统的数据驱动的Web应用程序中,我们经常尝试根据URL中传递的ID加载资源.如果资源不存在,我们返回404页面.
我们应该如何在AngularJS中实现同样的目标?我已经按照AngularJS电话目录教程进行操作,如果资源不存在,我目前正在执行以下操作(注意这使用了Angular $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
}
});
}]);
Run Code Online (Sandbox Code Playgroud)
这是推荐的方法吗?考虑到我需要在几乎所有资源上执行此操作,我想知道它是否会更好地处理$routeProvider?