2014-01-06 64 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/