2014-01-06 37 views
3

我举个例子。如何在angularjs中捕获ng模式

<input type="text" id="openDate" name="openDate" ng-model="ngModel" required="" ng-minlength="1" ng-maxlength="10" ng-pattern="/^[0-9,/]+$/"> 

当ng-pattern捕获错误时,它将在输入元素上绘制红色。

所以我想抓住这个错误并显示标题消息:“这个字段是失败格式。”

如何才能做到这一点?

回答

0

您可以使用directive来捕捉它。

因此,在您的HTML中,而不是使用ng-pattern,您将创建一个新的属性。在这种情况下,我将它称为ng-attr-mynewpattern。

<input type="text" ng-model="opendate" ng-minlength="1" ng-maxlength="10" ng-attr-mynewpattern="/^[0-9,/]+$/"> 

然后,添加指令。请注意,你删除了“ng-attr”。在指令中,我将元素和模式设置在范围中。这应该可能变成更强大的东西,但我想保持简单的例子。

app.directive("mynewpattern", function() { 
    return { 
     restrict: "A", 
     link: function (scope, el, attrs) { 
      scope.pattern = attrs.mynewpattern; 
      scope.el = el; 
     } 
    }; 
}); 

这里有一个的jsfiddle:http://jsfiddle.net/tonyzampogna/6Vj7p/