Javascript 是否可以/应该对同一元素应用多个自定义指令?
在我的应用程序中,我有一个自定义指令,由其他人编写,用于验证和格式化几个不同的表单字段,例如姓名、地址、电话、信用卡号、DOB等。如果用户输入无效数据,ng invalid将添加到该特定表单元素的CLASS属性中。表单的提交绑定了一个函数,该函数在允许表单提交之前检查所有字段是否包含有效数据。差不多Javascript 是否可以/应该对同一元素应用多个自定义指令?,javascript,angularjs,forms,validation,Javascript,Angularjs,Forms,Validation,在我的应用程序中,我有一个自定义指令,由其他人编写,用于验证和格式化几个不同的表单字段,例如姓名、地址、电话、信用卡号、DOB等。如果用户输入无效数据,ng invalid将添加到该特定表单元素的CLASS属性中。表单的提交绑定了一个函数,该函数在允许表单提交之前检查所有字段是否包含有效数据。差不多 app.directive('validateForms', function () { var form = angular.element(elem); scope
app.directive('validateForms', function () {
var form = angular.element(elem);
scope.isSubmitted = false;
form.bind('submit', function() {
scope.isSubmitted = true;
if(form.hasClass('ng-invalid')) return false;
});
});
此指令将应用于视图中的元素
<form name="request-info" id="request-info" validate-forms>
<form name="request-info" id="request-info" validate-forms show-err-msgs>
此指令将应用于视图中的元素
<form name="request-info" id="request-info" validate-forms>
<form name="request-info" id="request-info" validate-forms show-err-msgs>
预期的行为是,单击submit按钮将更改isSubmitted的值,并立即使用其值触发警报。可悲的是,根本没有警报。。。这让我相信以下一个或两个:
这两条指令在不同的范围内,这就是为什么一条指令中的更改在另一条指令中检测不到的原因
我完全错了,不能这样做
有人能告诉我哪里出了问题吗?啊,太蠢了!!我将第1条指令作为验证模块的一部分:
角度。模块“验证器”。指令
第二条指令是我主要模块的一部分
角度。模块“buyApp”。指令
当这两个指令都附加到Validate模块时,我的原始帖子中的代码就起作用了。我仍然想知道这是否是一种谨慎的表单验证和显示错误消息的方法。有人吗?可能是范围。$apply?您还缺少0超时延迟},0;。您可能希望在指令与服务之间进行通信—服务基本上是指针概念—两者都将引用相同的内容,当内容发生更改时,每个人都会收到通知。