동적 구성 데이터를 반환하는 WebAPI 서비스가 있습니다. 각도 응용 프로그램이로드되기 전에 해당 서비스를 호출하고 구성 데이터를 각도로로드하려고합니다. JSFiddle 저의 시도 중입니다. 내 질문은 콘솔에서 문자열 테스트를보고 난 후에 콘솔에 쓰여진 내용이 아무것도 없다는 것을 알 수 있습니다. 어떻게 내가 대신 app.run 단계에서이 작업을 실행하지 않는 이유 질문에 대한 응답으로 콘솔http 호출로 수동 부트 스트랩이 있음
var app = angular.module('app', [])
app.provider("ConfigService", function() {
var self = this;
self.Settings = {};
self.config = function (data) {
console.log(data);
};
this.$get =
function($http) {
return self;
};
});
angular.element(document).ready(function($http) {
console.log('test')
angular.module('app').config([
'ConfigServiceProvider',
function(configService) {
console.log('test 2')
$http.get('http://www.google.com').then(function(result) {
console.log('wierd wierd')
configService.config(result);
angular.bootstrap(document, ['app']);
})
}
]);
});
편집
로 표시 test 2
및 wierd wierd
을받을 수 있나요. app.run 단계에서 앱이 여전히 초기화 중이며 구성 섹션이 완료되기 전에 앱이로드되는 경우가 있습니다. 나는 100 % 보장을 원했고 나의 설정 섹션은 앱이 시작되기 전에 먼저로드되었다.
나는이 실행 단계가 나는 때문에, 실행 단계에서이 작업을 수행하지 않도록 선택 – Katana24
을 시작하는 모든 서비스는 시간에 의해로드 된 것 같은 구성 단계 반대로 실행 단계에서 수행 더 좋은 생각 응용 프로그램이 계속로드되고 때로는 더 빨리로드됩니다. 구성 서비스가 설정에 의존하기 때문에 응용 프로그램의 일부 기능이 중단 된 채로 되돌릴 수 있습니다. – gh9
페이지 서버의 javascript 변수에 데이터를 부트 스트랩해야합니다. (그리고 상수에 넣으면) 또는 구성을 서비스에 넣어야하고 그것에 의존하는 모든 것이 약속을 통해 액세스해야합니다 (거기에 의존 할 수 없기 때문에). 구성 단계 또는 실행 단계에 넣어도 상관 없습니다. – DerekMT12