这个问题可以通过使用变更检测机制来解决。在你的组件中注入ChangeDetectorRef,并在模型更新时手动激活变更检测。以下是一个示例代码片段:
import { Component, ChangeDetectorRef } from '@angular/core'; import { MyService } from '../services/myservice';
@Component({ selector: 'my-component', templateUrl: 'my.component.html', providers: [MyService] }) export class MyComponent { data: any[] = []; selectedData: any[] = [];
constructor(private myService: MyService, private cd: ChangeDetectorRef) {}
ngOnInit() { this.myService.getData().subscribe( (data) => { this.data = data; this.cd.detectChanges(); }, (error) => console.error(error) ); }
onRowSelect(event) { this.selectedData.push(event.data); }
onRowUnselect(event) { const index = this.selectedData.indexOf(event.data); if (index >= 0) { this.selectedData.splice(index, 1); } } }
在这个示例中,我们在MyComponent中注入了一个名为cd的变更检测器引用,并在获取数据时手动激活变更检测。这确保了选择的数据在更新后及时更新。