Mal*_*ali 1 arrays typescript angular
我需要将对象推入ngFor但出现错误Property 'push' does not exist on type 'Observable<MyDataType[]>'。
Stackblitz演示代码
HTML
<div *ngFor='let item of myObservableArray | async'>
{{item.value}}
</div>
Run Code Online (Sandbox Code Playgroud)
成分
getData() {
if (!this.myObservableArray) {
this.myObservableArray = this.myService.getData();
this.myObservableArray.push({"id":3, "value":"value_4"});
}
}
Run Code Online (Sandbox Code Playgroud)
服务
mydata: MyDataType[] = [
{"id":1, "value":"value_1"},
{"id":2, "value":"value_2"},
{"id":3, "value":"value_3"}
];
getData():Observable<MyDataType[]>
{
let data = new Observable<MyDataType[]>(observer => {
setTimeout(() => {
observer.next(this.mydata);
}, 4000);
});
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
演示我添加了另一种方法来添加或更新服务。
addOrUpdate(item:MyDataType){
var elem=this.mydata.find(element=> element.id==item.id);
if(elem){
elem.value=item.value;
}
else{
this.mydata.push(item);
}
}
Run Code Online (Sandbox Code Playgroud)
并在组件内部调用它
this.myService.addOrUpdate({"id":3, "value":"value_4"});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |