0

在 angularjs 中是否可以处理和解决 404 视图?

我想根据我的客户实现条件视图渲染,我有这样的视图:

<div ng-include="'assets/stackoverflow/breadcrumb.html'"></div>

所以如果假设上面返回404,它应该试试这个:

<div ng-include="'assets/default/breadcrumb.html'"></div>

这种方法可能是错误的,但我只需要一种处理视图 404 的方法,我有一个实际上捕获 404 请求的拦截器,但我如何解决它并再次发送它?

app.factory('RequestResponseInterceptor', ['$q', '$rootScope', '$location',
    function($q, $rootScope, $location) {

        var loadingCount = 0;
        return {
            responseError: function(response) {

                if (response.status === 404) {
                    //Change URL and request again
                }
                return $q.reject(response);
            }
        };
    }
]);
4

1 回答 1

-1

你应该使用路由。

像这样配置您的应用

.config([ '$routeProvider', function($routeProvider) {
$routeProvider.when('/', {
    templateUrl : 'assets/stackoverflow/breadcrumb.html',
    controller : 'ctrl1'
}).when('/s404', {
    templateUrl : 'assets/default/breadcrumb.html',
    controller : 'ctrl2'
}).otherwise({
    redirectTo : '/'
});

将 ng-include 替换为 ng-view:

<ng-view></ng-view>

在拦截器中设置位置路径(并记住注入 $location):

if (response.status === 404) {
   $location.path( "/s404" );
}
于 2015-02-16T12:55:12.817 回答