从内部指令检查表单有效性

时间:2014-09-23 18:43:36

标签: javascript angularjs angularjs-directive angularjs-scope

我有一个指令,可以监视表单是否已提交(因此我只能在提交后才能设置验证样式)。

问题是我在成功提交表单后无法“重置”表单。我该怎么做呢?

'use strict';


app.directive('formSubmitted', function() {
  return {
    restrict: 'A',
    link: function(scope, element) {
      scope.formSubmitted = false;
      element.on('submit', function() {
        scope.$apply(function() {
          scope.formSubmitted = true;
        });
      });

      scope.$watch('formSubmitted', function(submitted) {
        if (submitted === true) {
          element.addClass('submitted');
        } else {
          element.removeClass('submitted');
        }
      });
    }
  };
});

我试图从指令内部检查$ valid但是它不起作用(甚至不确定这是否是最佳方式)。

喜欢这个......

  var form = scope[element[0].name];
  element.on('submit', function() {
    scope.$apply(function() {
      if (form.$valid === true) {
        form.$setPristine();
        scope.formSubmitted = false;
      } else {
        scope.formSubmitted = true;
      }
    });
  });

0 个答案:

没有答案