【发布时间】:2019-12-31 22:34:44
【问题描述】:
我正在创建带有步骤的向导。我有两个没有父子关系的组件:
- 带有提交按钮的页脚组件正在重定向到下一步。
- 对某些输入进行验证的表单组件。
我还为上述两个组件之间的通信创建了一个服务。
我想要实现的是在页脚提交按钮上调用方法,该方法将检查来自组件编号 2 的表单是否有效。如果是,我们可以进行下一步,如果不是,我需要调用验证错误,而不进行下一步,直到用户将一些信息传递给表单上的输入。
我不确定如何实现这一点。有什么想法吗?谢谢。
我尝试在按钮上调用验证,但在同一个表单组件中。它按预期工作。现在我想在页脚的提交按钮上调用这个方法。
这是我在页脚组件中的onSubmitStep() 方法:
public onSubmitStep() {
if (this.currentStep < this.maxSteps) {
this.currentStep += 1;
this.switchStep();
this.showDefaultFooter = false;
}
}
这是我的表单组件中的内容:
public contractPropertiesContent: ContractPropertiesInput;
public contractPropertiesForm: FormGroup;
constructor(private fb: FormBuilder, private router: Router, private contractPropertiesService: ContractPropertiesService) {}
ngOnInit() {
this.contractPropertiesContent = this.contractPropertiesService.getContractPropertiesContent();
this.contractPropertiesForm = this.initFormGroup();
}
private initFormGroup() {
return this.fb.group({
paymentConditionsInput: ['', Validators.required],
creditDaysInput: ['', Validators.required],
targetInput: ['', Validators.required]
});
}
【问题讨论】:
-
我建议你在 Stackblitz 上创建一个工作示例,它确实会帮助我们更好地解决它。
-
您好,感谢您的回复。我已经为上面的意思准备了结构:stackblitz.com/edit/angular-6kdkjx
-
酷,我正在检查它
-
您真的需要将按钮和表单放在单独的组件中吗?
-
不幸的是,按钮在页脚组件中,而表单是分开的。如果我可以将这两个合二为一,那将很容易:D
标签: angular service communication