전에 해결하기 위해 각도 공장을 변경하려면 또는 잘못).어떻게이 <code>MapProvider</code>과 같이 기존 응용 프로그램을 사용하는 것을 주입
나는 지금 내가 가진 테스트로 일하고 얻을 수 있었다있는하는 BaiduMapsService
을 추가해야합니다
mapModule.factory('MapProvider', ['$injector', function($injector) {
if(true) {
return $injector.get('GoogleMapsService');
} else {
return $injector.get('BaiduMapsService');
}
}]);
그리고 그에 따라 if
값을 틀지. (이 두 서비스는 모두 TypeScript 인터페이스를 사용하므로 동일한 방법을 사용합니다.) 이제 $http
호출을 API에 추가해야합니다.이 API는 제공된 데이터를 기반으로 사용할 맵을 반환합니다. 내 공장을 비동기로 만들려면 내 모든 MapProvider.someCallHere()
호출을 MapProvider.then(m => m.someCallHere())
으로 변경해야합니다.
MapProvider
을 내 응용 프로그램에 삽입하면 비동기 데이터 (한 번만)를 사용하여 해결할 수 있고 나중에 필요한 서비스를 주입 할 수 있습니다.
또는 API 호출을하고 어딘가에 전역 데이터를 설정할 때까지 Angular를 지연/지연하는 방법이 있습니까?
감사합니다.
감사합니다. 완벽하게 작동합니다. – SteveEdson