我有一个名为customComponent
import {Component} from '@angular/core';
import { appService } from './app.service';
@Component({
selector: 'custom-root',
template: `<h1>how</h1>
<ul *ngFor="let hero of heroes"><li>{{hero}}</li></ul>`,
})
export class CustomComponent {
heroes = ['first','second','third'];
//heroes;
value: string = "";
// constructor(appService: appService) { }
/* ngOnInit(): void {
this.value = this._appService.getApp();
} */
}
在appService
我有
import {
Injectable
} from '@angular/core';
@Injectable()
export class appService {
getApp(): string {
return "Hello world";
}
}
在app.module.ts
我正在导入应用服务
import { appService } from './app.service';
@NgModule({
declarations: [
AppComponent,CustomComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule
// appService
],
providers: [appService],
bootstrap: [AppComponent]
})
export class AppModule { }
现在我收到错误
在自定义组件第15行
中找不到名称appService
我该如何解决这个问题?
答案 0 :(得分:3)
在CustomComponent文件中导入:
import { Inject } from '@angular/core';
然后在DI的构造函数中使用它:
constructor(@Inject(appService) private appService) { }
在此之后,请确保在模块的提供程序中取消注释appService。
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule,
appService
],
答案 1 :(得分:0)
替换此代码块
export class CustomComponent {
heroes = ['first','second','third'];
//heroes;
value: string = "";
constructor(private appService: appService) { }
ngOnInit(): void {
this.value = this.appService.getApp();
}
}
问题:
你正在调用this._appService.getApp();
您尚未定义_appService。
没有针对appService的DI。