如何从不同的控制器提交表格?

时间:2018-03-16 16:23:32

标签: javascript angularjs

我想从不同的控制器提交多个表单,但我不确定如何。这是因为我在我的网页的多个不同选项卡上有一个保存按钮。通过单击保存,我想提交表单,然后验证它。我想从主控制器提交表格,但我不知道如何参考表格。

这是我的表格

<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>

我不想复制和粘贴我的提交功能,并将按钮代码保存到使用该按钮的每个控制器中。

1 个答案:

答案 0 :(得分:1)

使用服务

假设您创建了一项服务 EventService

每当您想从另一个控制器提交表单时,发出一个事件。

EventService.$emit("submit-event");

在主控制器中添加一个监听器,该监听器将执行onSubmit功能。

EventService.$on("submit-event", vm.onSubmit);


注1:服务类必须扩展 EventEmitter

注2:控制器必须使用公共服务发出和收听事件。


Can one controller call another?