在角 8 中的 if 语句中断开循环后如何停止执行其他部分?



我在这里的要求是我有一个数组,如下所示,

{"OPN":0,"INPR":8,"WAIT":2,"STP":1,"RED":13}

如果除 WAIT 之外的所有键的计数为 0,我想显示一个模式窗口, 如果所有键的计数大于 0,那么我想显示另一个模态窗口。 我尝试过这样的东西,但这失败了,因为它显示了两个模态窗口。

for (let index = 0; index <  this.status.length; index++) {
if(this.status[index] != 'WAIT' && this.countOfStatus[this.status[index]] > 0){
$("#modal1").modal("show");
break;
}else{
dummyVar = true;
}
}
if(dummyVar){
$("#modal2").modal("show");
}

任何帮助,不胜感激。

提前谢谢。

这与 Angular 无关。你实际上是在Angular应用程序中使用JQuery,顺便说一句,这不是一个好主意。这是一个纯粹的JavaScript/TypeScript问题。

您想要显示单个模态。因此,显示模式的代码不应在循环中。

我的建议是使用更简单的函数,做一件事:

  1. 返回要显示的模态的函数
  2. 显示模态的函数

.

findIdOfModalToShow(): string {
for (let index = 0; index <  this.status.length; index++) {
if (this.status[index] != 'WAIT' && this.countOfStatus[this.status[index]] > 0) {
return 'modal1';
}
}
return 'modal2';
}
showAppropriateModal() {
const idOfModalToShow = this.findIdOfModalToShow();
$(`#${idOfModalToShow}`).modal('show');
}

最新更新