出现这个问题的原因通常是没有正确使用订阅。要解决这个问题,你需要确保你正确地订阅了Observable,并在订阅函数中更新数据。
以下是一些代码示例,可以帮助你解决此问题:
// component.ts import { Component, OnInit } from '@angular/core'; import { DataService } from './data.service'; import { Subscription } from 'rxjs';
@Component({
selector: 'app-root',
template:
})
export class AppComponent implements OnInit {
data: string;
subscription: Subscription;{{ data }}
constructor(private dataService: DataService) {}
ngOnInit() { this.subscription = this.dataService.getData() .subscribe((data) => { this.data = data; }); }
ngOnDestroy() { this.subscription.unsubscribe(); } }
// data.service.ts import { Injectable } from '@angular/core'; import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private data = new Observable
constructor() { this.data = new Observable((observer) => { setTimeout(() => { observer.next('Hello World'); }, 1000); }); }
getData(): Observable
// component.ts import { Component } from '@angular/core'; import { DataService } from './data.service';
@Component({
selector: 'app-root',
template:
})
export class AppComponent {
data$ = this.dataService.getData();{{ data$ | async }}
constructor(private dataService: DataService) {} }
// data.service.ts import { Injectable } from '@angular/core'; import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private data = new Observable
constructor() { this.data = new Observable((observer) => { setTimeout(() => { observer.next('Hello World'); }, 1000); }); }
getData(): Observable
无论你选择哪种方法,都需要确保正确订阅和使用Observable。如果你仍然无法更新数据,请检查你的代码,并确保你没有任何错误。