Angularjs 在配置中将解析器添加到角度路由Provider

Angularjs 在配置中将解析器添加到角度路由Provider,angularjs,service,boilerplate,resolver,Angularjs,Service,Boilerplate,Resolver,我开始使用angular 1.x样板文件,但有一个问题,我无法通过服务向解析器发送承诺 function ExampleService($http) { 'ngInject'; const service = {}; let getTasks = ()=> { return $http.get('tasks'); }; service.isReady = new Promise((resolve, reject)=> { getTasks().then(

我开始使用angular 1.x样板文件,但有一个问题,我无法通过服务向解析器发送承诺

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;
}

导出默认值{ 名称:“ExampleService”, fn:示例服务 }; 但当我尝试将y服务注入到_config.js时,我出现了错误

未捕获错误:[$injector:modulerr]未能实例化模块应用程序,原因是: 错误:[$injector:unpr]未知提供程序:ExampleService

我的州提供商

$stateProvider
    .state('Home', {
    url: '/',
    controller: 'ExampleCtrl as home',
    templateUrl: 'home.html',
    title: 'Home',
    resolve:{example:ExampleService.isReady}
    })
也许我做错了什么,或者你们可以建议我如何在呈现第一个控制器之前,推动EMT逻辑将一些数据预加载到应用程序中


无法将指向

服务的附加链接注入配置块。它们需要注入解析器函数中:

$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);
}

请确保您使用以下代码注册服务
angular.module('app')。service(ExampleService)
谢谢,这确实对我有帮助,但您能否解释(或提供解释链接)为什么isReady应该是一个函数