在配置中将解析器添加到 angular routeProvider
adding resolver to angular routeProvider in config
我开始使用 angular 1.x 样板并遇到 1 个问题,我无法从服务
发送到解析器承诺
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 服务 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}
})
也许我做错了什么或者你可以建议我如何在呈现第一个控制器之前实现将一些数据预加载到应用程序的逻辑
P.S。 link 到 bolerplate
无法将服务注入到配置块中。它们需要注入解析器函数:
$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 1.x 样板并遇到 1 个问题,我无法从服务
发送到解析器承诺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 服务 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}
})
也许我做错了什么或者你可以建议我如何在呈现第一个控制器之前实现将一些数据预加载到应用程序的逻辑
P.S。 link 到 bolerplate
无法将服务注入到配置块中。它们需要注入解析器函数:
$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);
}