可能是因为数据更新后未及时通知到其他组件,解决方法是使用Angular的服务来管理数据。服务是单例的,在整个应用中只会实例化一次,可以用来在组件间共享数据。
代码示例:
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' }) export class DataService { sharedData: any;
constructor() { }
setData(data: any) { this.sharedData = data; }
getData() { return this.sharedData; } }
import { Component } from '@angular/core'; import { DataService } from './data.service';
@Component({ selector: 'app-component1', template: 'Component 1: {{data}} ' }) export class Component1Component { data: any;
constructor(private dataService: DataService) { this.data = dataService.getData(); }
updateData() { this.data = 'updated data'; this.dataService.setData(this.data); } }
import { Component, OnInit } from '@angular/core'; import { DataService } from './data.service';
@Component({ selector: 'app-component2', template: 'Component 2: {{data}}' }) export class Component2Component implements OnInit { data: any;
constructor(private dataService: DataService) {}
ngOnInit() { this.data = this.dataService.getData(); } }