- 确保你的服务文件中,@Injectable装饰器下使用了@Injectable(),而不是@Inject()
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class DataService { }
- 将你的服务文件添加到AppModule中的providers数组中
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { DataService } from './data.service';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [DataService], // 添加到providers
bootstrap: [AppComponent]
})
export class AppModule { }
- 在组件中注入服务
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
template: `
{{message}}
`
})
export class AppComponent {
message: string;
constructor(private dataService: DataService) {
this.message = this.dataService.getMessage();
}
}
- 在视图中绑定数据
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-root',
template: `
{{message}}
`
})
export class AppComponent {
message: string;
constructor(private dataService: DataService) {}
ngOnInit() {
this.dataService.getMessage().subscribe(message => {
this.message = message;
});
}
}