我想通过点击删除链接从表中删除当前行。
我使用下面的代码显示数据
服务
webpack-dev-server --open --inline --hot --watch --progress
部件
getMembers(): Observable<any> {
return this._http.get('http://localhost/membership/main/getUsers')
.map(response => response.json() );
}
HTML
members$: Observable<any[]>;
ngOnInit() {
this.members$ = this._membersService.getMembers()
}
delete(id) {
this._membersService.deleteUser(id);
}
我听说过拼接功能。但是我找不到如何在可观察中使用它的方法。
答案 0 :(得分:1)
我认为你在这里有更大的问题。
确实没有简单的方法从T
持有的数组中删除单行Observable<T[]>
。我建议你去常规路线:
members: any[];
ngOnInit(): void {
this._membersService
.getMembers()
.subscribe(members => this.members = members);
}
delete(memberIndex: number): void {
this.members.splice(memberIndex, 1);
}
<a (click)="delete(i)">
您希望在字段中保存结果数据的原因是您的模板。
我在你的模板代码中打赌你有类似于*ngFor="let member of members$ | async"
的东西。问题是此代码将导致在每个更改检测周期中重新评估members
。这意味着,当绝对没有必要时,远程API将被多次调用!
话虽如此,我必须提一下,如果您说(例如)@ngrx/store
用于数据管理,我的答案将完全不同。但是,由于你的问题中没有提到这一点,我认为,这是不可能的。
否则,您也可以使用BehaviorSubject
,但我不建议您使用当前的设置。最好将BehaviorSubject
放入您的服务中并将其公开为Observable
。