在ngSubmit验证之前的Angular自定义表单元素指令?

时间:2016-02-21 22:39:39

标签: javascript angularjs forms

所以假设我有一个表格:

<form ng-submit="submitForm()">
    <custom-form-element><custom-form-element>
    <button name="submit">Submit<button>
<form>

对于customFormElement包含的数据(假设它是某种自定义字段),link(或其他地方,如果合适?)指令定义的一部分,是否仍然有效在表单提交之前验证/清理那里的数据?

我不想在submitForm()函数中执行此操作,因为那里可能有多个相同的元素。

编辑:可能有助于说我正在做的不是验证本身,而是更像... customFormElement修改范围内的特定属性。 e.g。

$scope.customFormElementData = {};

然后在提交之前,它看起来像:

$scope.customFormElementData = {
    foo: 'bar',
    baz: 'quuz'
};

但我想做的是:

$scope.customFormElementData = {
    foo: '',
    baz: ''
}

我想省略foo和bar。

1 个答案:

答案 0 :(得分:0)

不考虑你想要完成的是最好的方法,你可以通过广播事件来做你想到的事情。

所以在你的SubmitForm()函数中:

$rootScope.$broadcast('aboutToSubmitForm');
$rootScope.$broadcast('submittingForm');

在控制器中:

$scope.$on('submittingForm', function() { //form submittal logic here });

然后,在你的指令的链接功能中:

$scope.$on('aboutToSubmitForm', function(){ //your pre form submission logic here });