Angular 5不会检查多个条件

时间:2018-06-08 14:00:14

标签: angular

我创建了一个提交表单的方法,在该方法中我必须检查在提交表单之前用2种不同的方法创建的2个条件,但我甚至不知道为什么,只有第一个条件触发,第二个永远不会被调用,无论我先放置哪种条件方法。任何人都可以解释这一点,我甚至无法在互联网上找到类似的问题吗?

component.ts:

onSubmit(formValues) {
  if (editedForm.status === 'Ready') {
    // no matter what conditional method is called first, only the 
    // first condition is checked
    if (this.isNotOverlapped() && this.isValidPeriodOrder()) {
      this.apiService.submit(formValues).subscribe(() => {
       // sending data to backend....
      });
    }
  }
}

// conditional method
isNotOverlapped(): boolean {
  console.log('IsNotOverlapped fire!');
  let isvalid = false;
  if (this.data.length > 1) {
   // some validation stuffs
  }
  return isvalid;
}

// conditional method
isValidPeriodOrder(): boolean {
  console.log('IsValidPeriodOrder fire!');
  let isvalid = false;
  if (this.data.length > 1) {
   // some validation stuffs
  }
  return isvalid;
}

1 个答案:

答案 0 :(得分:2)

方法isNotOverlapped()总是返回false,然后第二个条件永远不会被调用。

例如:

if(condition1 && condition2 && ...)

如果任何条件为假,则不会验证其他剩余条件。尝试强制isNotOverlapped()返回true并检查它。