gpt4 book ai didi

javascript - 具有多个模块的路由和内联 View 不起作用 - $http 拦截器可能会导致错误

转载 作者:行者123 更新时间:2023-11-28 07:24:49 25 4
gpt4 key购买 nike

我正在使用 Angular 参与一个项目。

这个想法是拥有不同的模块,并且每个模块都能够注册自己的路由。部分内容将全部位于同一个 HTML 内联中。但是它不起作用...

这是 plunkr http://plnkr.co/edit/n3q1FW95LD24XqTF37aZ

代码类似于:

<body ng-class="{loaded: loaded}" ng-app="Stream" ng-controller="StreamCtrl">
<div id="wrapper" ng-show="loaded">
<div ng-view></div>
</div>
<script type="text/ng-template" id="welcome.html">
From the template
</script>
</body>

还有 JS:

(function() {
"use strict";

angular.module("Default", ["ngRoute"])
.config(
["$httpProvider", "$routeProvider", "$locationProvider",
function ($httpProvider, $routeProvider, $locationProvider) {
$routeProvider
.when("/mee", {
templateUrl: "partials/welcome.html"
})
.when("/mee/index", {
templateUrl: function(params){
console.log("Getting partial url");
return "partials/welcome.html"
}
})
;

}
])
;
})();
(function() {
"use strict";
angular.module("Stream", [
"Default"
])
.config(["$locationProvider", function($locationProvider) {
}])
.run(function($rootScope, $log, $window) {
$log.info("Setting the application status as loaded!");
$rootScope.loaded = true;
});
})();

无法工作的完整代码可以在 plunkr 中看到...

最佳答案

终于找到答案了...

事实证明,对模板的请求(即使它们被缓存)受到 $http 拦截器的影响。

plunkr 的工作在这里:

http://plnkr.co/edit/RoUhkiGP9RzCfUc6Pc3v?p=preview

这是影响数据解析的拦截器。

    $httpProvider.interceptors.push(function($q) {
return {
'response': function(response) {
return response.data;
},
'responseError': function(rejection) {
return $q.reject(rejection);
}
};
});

我仍然需要拦截器。所以现在是这样的:

    $httpProvider.interceptors.push(function($q) {
return {
'response': function(response) {
if (response.config.method == "GET" && response.config.url.split(".").pop() == "html")
return response;
return response.data;
},
'responseError': function(rejection) {
return $q.reject(rejection);
}
};
});

感谢http://www.bennadel.com/blog/2803-ng-template-requests-are-affected-by-http-interceptors-in-angularjs.htm

感谢https://stackoverflow.com/a/25060769/1339973为模板时$http拦截的问题提供解决方案

关于javascript - 具有多个模块的路由和内联 View 不起作用 - $http 拦截器可能会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com