代码之家  ›  专栏  ›  技术社区  ›  Hoàng Nguyễn

角度5不检查多种情况

  •  0
  • Hoàng Nguyễn  · 技术社区  · 6 年前

    我创建了一个提交表单的方法,在该方法中,我必须在提交表单之前检查在两个不同的其他方法中创建的两个条件,但我甚至不知道为什么,只有第一个条件被触发,第二个条件从未调用,不管我把哪个条件方法放在第一位。有谁能解释这一点,我甚至在互联网上找不到类似的问题?

    组件.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 回复  |  直到 6 年前
        1
  •  2
  •   Mike    6 年前

    方法 isNotOverlapped() 总是回来 false ,则永远不会调用第二个条件。

    例如:

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

    如果任何条件为假,则不会验证其他剩余条件。试着强迫 不重叠() 返回真值并检查它。