我无法让我正在开发的应用程序的一部分正常工作:
这是组件的逻辑:
export class StockStatusComponent implements OnInit{
articles: Article[] = [];
selectedLevel: any;
constructor(private service: ArticleService) {
}
ngOnInit(): void {
this.dataBackend();
}
dataBackend() {
this.service.getArticles().subscribe(res => {
for (let i = 0; i < res.length; i++) {
let actualStock = res[i].stockActual;
let minimumStock = res[i].stockMinimo;
if (actualStock < minimumStock) {
this.articles.push(res[i]);
}
}
})
console.log(this.articles);
}
filterByLevels(event: any) {
const level = event.target.value;
this.selectedLevel = level;
}
selectLevel() {
console.log("Selected level: " + this.selectedLevel);
if (this.selectedLevel === "all") {
this.service.getArticles().subscribe(res => {
this.articles = res;
})
}
console.log(this.articles);
}
}
HTML:
<div>
<div>
<label>Filter by Stock Levels</label>
<select (change)="filterByLevels($event)">
<option value=""></option>
<option value="all">All</option>
</select>
<button class="btn btn-success" (click)="selectLevel()">Select</button>
</div>
</div>
代码解释步骤:
访问组件后,它应该通过控制台向我显示那些满足开发条件的“文章”,在这部分我认为我没有问题,因为它正确地为我带来了所需的数据。(ngOnInit)
我遇到的问题是,当我选择列表中的任何选项时,例如“全部”级别,这将必须为我带来所有文章,并且为了带来它们,我必须单击两次。为了澄清,我留下了这个例子:
例子:
我输入了组件,并且由于在 ngOnInit () 中执行的方法,它向我显示了一个空数组,因为目前没有符合条件的记录。
我从列表中选择“全部”选项并尝试带上所有记录,但它给我带来了与通过 ngOnInit 获得的相同结果。为了达到期望,我必须再次单击并再次执行方法“选择级别()”。
非常感谢您,我感谢您的任何帮助!