我在这上面转动我的车轮。我试图向我的控制器提供此服务的实例。当我运行它时,我得到了
JavaScript运行时错误:[$ injector:unpr]未知提供程序: app.services.GithubServiceProvider< - app.services.GithubService< - app.githubViewer.UserController
以下是各个部分:
服务本身
module app.services {
'use strict';
export interface IGithubService {
getUser(username: string): ng.IPromise<any>;
}
export class GithubService implements IGithubService {
githubUrl: string = 'https://api.github.com/';
static $inject = ['$http'];
constructor(private $http: ng.IHttpService) {
}
getUser(username: string): angular.IPromise<any> {
return this.$http.get(this.githubUrl + "users/" + username)
.then(response => response.data);
}
}
angular
.module('app.services')
.service('app.services.GithubService', GithubService);
}
控制器
module app.githubViewer {
'use strict';
interface IUserControllerScope { //scope definitions
}
class UserController implements IUserControllerScope {
static $inject = ['app.services.GithubService', '$route'];
constructor(githubService: app.services.IGithubService, $route: ng.route.IRouteService) {
//...
}
}
angular
.module('app.githubViewer')
.controller('app.githubViewer.UserController', UserController);
}
更新,我在这里查看了this list常见问题,看起来它们都是有序的。代码如下:
这是我的主要模块声明:
((): void => {
'use strict';
angular
.module('app', [
'app.core',
'app.services',
/*
*Feature Modules
*/
'app.githubViewer'
]);
})();
这是服务模块声明:
((): void => {
'use strict';
angular
.module('app.services', []);
})();
我已经进行了三次检查,以确保将脚本添加到页面中。
如果还有什么我应该在这里发布,请告诉我。我是Angular和TypeScript的初学者。
答案 0 :(得分:1)
您必须将app.services
声明为app.githubViewer
angular
.module('app.githubViewer', ['app.services'])