我创建了一个提交表单的方法,在该方法中我必须检查在提交表单之前用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;
}
答案 0 :(得分:2)
方法isNotOverlapped()
总是返回false
,然后第二个条件永远不会被调用。
例如:
if(condition1 && condition2 && ...)
如果任何条件为假,则不会验证其他剩余条件。尝试强制isNotOverlapped()
返回true并检查它。