Javascript 添加验证指令的指令,该指令从$invalid上的文本框中删除数据

Javascript 添加验证指令的指令,该指令从$invalid上的文本框中删除数据,javascript,angularjs,Javascript,Angularjs,让我最接近于正确实现这一点,但只要我的字段在表单上设置$invalid键,至少我认为就是这样,它就会删除我文本框中的文本 为了使用指令,您需要添加优先级:1000,以便get在执行任何指令之前执行代码&在编译DOM之前,您需要删除指令属性meta-validate,以便它在编译时不会执行。如果您不这样做,那么您将获得最大的调用堆栈。错误 指示 希望这能对你有所帮助。谢谢。尝试编译整个表单$compileelement.formscope而不是$compileelement[0]。formscop

让我最接近于正确实现这一点,但只要我的字段在表单上设置$invalid键,至少我认为就是这样,它就会删除我文本框中的文本


为了使用指令,您需要添加优先级:1000,以便get在执行任何指令之前执行代码&在编译DOM之前,您需要删除指令属性meta-validate,以便它在编译时不会执行。如果您不这样做,那么您将获得最大的调用堆栈。错误

指示


希望这能对你有所帮助。谢谢。

尝试编译整个表单$compileelement.formscope而不是$compileelement[0]。formscope谢谢。。。但它不起作用。在我的plnker链接中尝试一下,这里是我的plnkI添加的答案。检查它是否对您有用?
 myApp.directive('metaValidate', function ($compile) {
    return {
      restrict: 'A',
      priority: 1000, //this setting is important to make sure it executes before other directives
      compile: function compile(element, attrs) {
        return {
          pre: function preLink(scope, iElement, iAttrs, controller) { if(!element.attr('ng-maxlength')){
              element.attr('ng-maxlength', '2');
              element.removeAttr("meta-validate");
            } },
          post: function postLink(scope, iElement, iAttrs, controller) {  
            $compile(element)(scope);
          }
        };
      }
    };
  });