Angular $httpProvider 拦截器在将 "UI Grid" 添加到应用程序后停止为 'ng-include' 工作

Angular $httpProvider interceptors stopped working for 'ng-include' after adding "UI Grid" to the app

我正在尝试添加 Angular UI Grid to my application, following introduction tutorial Tutorial: 101 Intro to UI-Grid 并遇到以下问题。

首先,网格有效,我可以在控制器中创建它并绑定到视图,但是 一旦我将它添加到项目中(只是作为一个模块添加,而不是在任何地方实际使用它),以前工作的拦截器就不再被触发,更具体地说,它需要用 ng-include[ 加载视图模板 (请参阅下面的一些代码摘录)。

编辑:请注意 ng-include 有效,它只是不通过拦截器,而是像 none.

一样有效

我尝试了什么:

  1. 使用其他 Angular 版本,
  2. 尝试使用工厂初始化拦截器,
  3. 更改了初始化数组中模块的顺序,
  4. 尝试了其他 jQuery 版本。

有没有人遇到过这样的问题,也许是其他模块?

HTML :

<body>
    <div ng-app="app">
        <div ng-controller="app.views.layout as vm">
            <div ng-include="'/App/Main/views/layout/header.cshtml'"></div>
            <div class="container">
                <div class="angular-animation-container row">
                    <div ui-view class="shuffle-animation col-xs-12"></div>
                </div>
            </div>
        </div>
    </div>
</body>

Angular 应用程序初始化:

var app = angular.module('app', [
    'ngAnimate',
    'ngSanitize',

    'ui.router',
    'ui.bootstrap',
    'ui.jq',

    'ngTouch'
    'ui.grid'

    'abp',

]);

拦截器注册:

var abpModule = angular.module('abp', []);

abpModule.config([
    '$httpProvider', function ($httpProvider) {
        $httpProvider.interceptors.push(['$q', function ($q) {

            return {

                'request': function (config) {
                    if (endsWith(config.url, '.cshtml')) {
                        config.url = abp.appPath + 'AbpAppView/Load?viewUrl=' + config.url + '&_t=' + abp.pageLoadTime.getTime();
                    }

                    return config;
                },

                'response': function (response) {
                    if (!response.config || !response.config.abp || !response.data) {
                        return response;
                    }

                    var defer = $q.defer();

                    abp.ng.http.handleResponse(response, defer);

                    return defer.promise;
                },

                'responseError': function (ngError) {
                    var error = {
                        message: ngError.data || abp.ng.http.defaultError.message,
                        details: ngError.statusText || abp.ng.http.defaultError.details,
                        responseError: true
                    }

                    abp.ng.http.showError(error);

                    abp.ng.http.logError(error);

                    return $q.reject(ngError);
                }

            };
        }]);
    }
]);

我从头开始设置,现在可以使用了。看起来我在某处遗漏了一些小的配置错字。同样显然 ui-grid 不会干扰 angular http 拦截,所以结论是它是误报。