Маршрут с несколькими модулями, встроенные представления не работают - $http перехватчик, возможно, вызывает ошибки
Я работаю в проекте с Angular.
Идея состоит в том, чтобы иметь разные модули, и каждый из них сможет регистрировать свои собственные маршруты. Все части будут в пределах одного HTML-кода. Однако это не работает...
Вот этот планкр 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...
1 ответ
Наконец-то я смог найти ответ...
Оказывается, на запросы шаблонов (даже если они кэшируются) влияют перехватчики $http.
Плункер работает здесь:
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);
}
};
});
Спасибо /questions/17765722/uglovoj-http-perehvatchik-dlya-vstroennyih-ng-shablonov/17765736#17765736 за предоставленное решение проблемы с перехватом $http, когда шаблон