Javascript 按关键字筛选数组在角度模式下不起作用
我创建了一个角度过滤器组件来过滤数组并打印其内容。我通过服务从另一个组件获取关键字作为筛选器数组的值。在html中,显示值和整个数组,但不显示过滤器数组 下面是我的代码: result.component.ts result.component.htmlJavascript 按关键字筛选数组在角度模式下不起作用,javascript,angular,Javascript,Angular,我创建了一个角度过滤器组件来过滤数组并打印其内容。我通过服务从另一个组件获取关键字作为筛选器数组的值。在html中,显示值和整个数组,但不显示过滤器数组 下面是我的代码: result.component.ts result.component.html 仅显示{{value}},而不显示{{item}。如何解决这个问题?您在ngOnInit上一个接一个地调用this.getPosts和this.showData this.getPosts是一个异步调用,因此在获取this.getPosts的结
仅显示{{value}},而不显示{{item}。如何解决这个问题?您在ngOnInit上一个接一个地调用this.getPosts和this.showData this.getPosts是一个异步调用,因此在获取this.getPosts的结果之前,将运行this.showData。因此,无需过滤: 解决方法是将this.showData放在this.getPosts的成功回调中。因此,只有在get方法成功完成并且有一些数据要过滤时,才会调用showData: 像这样的
getPosts(): void{
this.http.get<JsoncallItem[]>(this.postsURL).
subscribe(
resultArray => {this._postsArray = resultArray['data'];
this.showData();
})
}
并从ngOnInit中删除此.showData
希望这有帮助。现在它显示结果,但不过滤,它显示整个阵列!如果this.value有值,请签入this.showData。可能它是空的,这就是为什么它会显示所有结果,因为您也会使用订阅初始化它,而此时它可能不会被填充。请尝试在constructor上执行this.data.currentValue.subscribevalue=>this.value=value这一行。
<p>{{value}}</p>
<table">
<tr *ngFor="let item of filterarray">
<td>{{item}}</td>
</tr>
</table>
getPosts(): void{
this.http.get<JsoncallItem[]>(this.postsURL).
subscribe(
resultArray => {this._postsArray = resultArray['data'];
this.showData();
})
}