我想从不同的控制器提交多个表单,但我不确定如何。这是因为我在我的网页的多个不同选项卡上有一个保存按钮。通过单击保存,我想提交表单,然后验证它。我想从主控制器提交表格,但我不知道如何参考表格。
这是我的表格
<form name="vm.driverForm" novalidate>
<formly-form class="top20" model="vm.model" fields="vm.fields" options="vm.options" form="vm.driverForm"></formly-form>
</form>
并在我的主控制器中提交功能
vm.onSubmit = onSubmit;
function onSubmit() {
$scope.vm.driverForm.$setSubmitted(); //THIS IS THE PART I'M TRYING TO FIGURE OUT
}
和主控制器中的按钮
<button type="button" ng-click="vm.onSubmit()" class="btn btn-primary submit-button top5">Save Driver</button>
我不想复制和粘贴我的提交功能,并将按钮代码保存到使用该按钮的每个控制器中。
答案 0 :(得分:1)
使用服务。
假设您创建了一项服务 EventService 。
每当您想从另一个控制器提交表单时,发出一个事件。
EventService.$emit("submit-event");
在主控制器中添加一个监听器,该监听器将执行onSubmit功能。
EventService.$on("submit-event", vm.onSubmit);
注1:服务类必须扩展 EventEmitter 类
注2:控制器必须使用公共服务发出和收听事件。