설정

2017-01-03 16 views
0
내가 각도 1.x에서 보일러 작업을 시작하고 1 문제가

을에 각 routeProvider에 리졸버를 추가, 내가 서비스설정

function ExampleService($http) { 
'ngInject'; 

const service = {}; 
let getTasks =()=> { 
    return $http.get('tasks'); 
}; 

service.isReady = new Promise((resolve, reject)=> { 
    getTasks().then(
     (data) => { 
      resolve(data); 
     }, 
     (err, status) => { 
      reject(err, status); 
     }); 
}); 

return service; 

}

수출 기본 { 에서 해결 약속에 보낼은`t 이름 : 'ExampleService', fn : ExampleService }; 내가 주입 할 때 그러나, Y, 서비스 내가 오류

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: Error: [$injector:unpr] Unknown provider: ExampleService

내 stateProvider이

$stateProvider 
    .state('Home', { 
    url: '/', 
    controller: 'ExampleCtrl as home', 
    templateUrl: 'home.html', 
    title: 'Home', 
    resolve:{example:ExampleService.isReady} 
    }) 

어쩌면 내가 뭔가 잘못을하거나 내가 일부 데이터를 사전로드에 대한 논리를 impelemt 수있는 방법을 제안 할 수있다 on_config.js하기 첫 번째 컨트롤러를 렌더링하기 전에 앱으로 이동

PS bolerplate

+0

(' app '). service (ExampleService)' –

답변

0

으로 연결하십시오. 서비스를 구성 블록에 삽입 할 수 없습니다. 그들은 해결 기능에 주입해야합니다 또한 isReady 요구

$stateProvider 
    .state('Home', { 
    url: '/', 
    controller: 'ExampleCtrl as home', 
    templateUrl: 'home.html', 
    title: 'Home', 
    resolve:{ 
     example: function (ExampleService) { 
      return ExampleService.isReady(); 
     } 
    }) 

이 기능으로 새 약속을 할 : 당신은 코드`angular.module를 다음과 같이 서비스를 등록해야합니다

service.isReady =() => { 
    return getTasks().then(response => response.data); 
} 
+0

고마워, 나에게 정말 도움이된다. 그러나 설명 할 수 있겠는가 (또는 설명이있는 링크를 줄 수 있는지) 왜 isReady는 함수 여야 하는가? – Anton