我正在尝试将Angular UI Grid添加到我的应用程序中,然后介绍教程Tutorial: 101 Intro to UI-Grid并面临以下问题。
首先,网格工作,我可以在控制器中创建它并绑定到视图,但是 一旦我将它添加到项目中(只是作为一个模块添加,而不在任何地方实际使用它),之前工作的拦截器不再被触发,更具体地说,它需要用 ng-include (参见下面的一些代码摘录)。
编辑:请注意 ng-include 有效,它只是不通过拦截器,但是没有。但
我尝试了什么:
有没有人遇到过这样的问题,或许还有其他模块?
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);
}
};
}]);
}
]);
答案 0 :(得分:0)
我从头开始设置它现在有效。看起来我在某个地方错过了一些小配置错字。显然,ui-grid也不会干扰角度的http拦截,所以结论是它是虚假警报。