在此the repo
中在控制器中,我试图注入UserService
:
class UserDetailController implements IUserDetailScope {
static $inject = ['app.core.services.UserService']; // static injection
constructor(userService: app.core.services.IUserService) {
但它在浏览器上失败了#39;控制台:
未知提供者:app.core.services.UserServiceProvider< - app.core.services.UserService< - UserDetailController
你能说出原因吗?
答案 0 :(得分:1)
尝试上套管" U"在构造函数中的UserService中。当angular进入inject时,它只是匹配服务的名称,并且它匹配大小写。
修改强>
刚刚意识到你正在使用$ inject,我会留下第一个回复以防其他人找到它。
您没有向我们展示注册服务的代码,但通常是下一个罪魁祸首。我猜您是否已将其注册为“UserService'”,而不是' app.core.services.UserService',或者您正在执行应用。 controller()而不是App.service()注册。这是另外两个想到的罪魁祸首。
答案 1 :(得分:0)
你正在编写整个命名空间来注入一个服务,但我有一个简洁的方法
module portal {
var app =angular.module('fooModule',[]);
app.service(services);
app.controller(controllers);
}
module portal.services {
//all your services will go under this namespace
export class fooService{
//service body here
}
}
module portal.controller{
export class UserDetailController implements IUserDetailScope {
static $inject = ['UserService'];
constructor(userService: potal.services.IUserService) {
}
}