[英]How to declare a service with Angular5
我有一个看起来像这样的Angular服务
@Component({})
@Inject(ChromeDataService)
@Injectable()
export class MainDataService {
}
当我运行ng build --prod
,出现此错误
错误:没有为组件MainDataService指定模板
我唯一的猜测是Angular服务不需要成为组件吗? 所以我删除了@Component
批注,但是得到了:
中的错误:模块“ /home/.../src/app/shared.module.ts中的SharedModule”声明了意外的值“ /home/.../main.ts中的MainDataService”。 请添加@ Pipe / @ Directive / @ Component批注。
嗯,如何在Angular5中创建服务?
要正确使用角度服务,您只需要injectable()
这是一个例子
@Injectable()
export class myService {
//some logic
}
然后在您的app.module
或功能模块中,将服务添加到providers
数组中,并让angular DI为您处理服务。
@Component({
usual stuff with template, selector, css})
export class someComponent {
constructor(private myService: MyService){}
}
构造函数将告诉angular自动注入所需的服务。
您的服务仅需要@Injectable()装饰器。
import {Injectable} from '@angular/core'
import {Router} from '@angular/router'
@Injectable()
export class AuthService {
constructor(private router: Router) {}
}
这就是我在Angular中声明服务的方式:
@Injectable()
export class AuthService {
...
}
我认为您只需要@Injectable
装饰器。 也许您的问题来自shared.module.ts
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.