2017-01-03 3 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; 

}

экспорта по умолчанию { name: 'ExampleService', fn: ExampleService }; Но когда я пытаюсь внедрить, у сервиса для on_config.js У меня есть ошибка

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 логики для предварительной загрузки некоторых данных до приложения до первого контроллера

PS ссылка на bolerplate

+0

Убедитесь, что вы зарегистрировать сервис с помощью следующего кода 'angular.module (» app '). service (ExampleService) ' –

ответ

0

Услуги не могут быть введены в конфигурационные блоки. Они должны быть введены в функции разрешителя:

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

Также в isReady должен быть функцией, а не новое обещание:

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

спасибо, это действительно помогает мне, но не могли бы вы объяснить (или дать ссылки с объяснением), почему isReady должна быть функцией – Anton

Смежные вопросы