2014-03-24 79 views
6

請看看plunker。angularJS ng模式不工作

http://plnkr.co/edit/DuTFYbLVbPkCIvRznYjG?p=preview

,其中n模式正則表達式是不會運用在輸入文本字段。

只要求驗證正確應用。

HTML:

<body ng-controller="tableController"> 
    <form name="test"> 
     <div ng-repeat="model in models"> 
      <span ng-bind="model.caption"></span> 
      <div ng-form name="frm{{$index}}"> 
       <input name="input{{$index}}" 
        ng-model="data[model.name]" 
        ng-disabled="model.isDisabled" 
        minlength="{{model.minlength}}" 
        maxlength="{{model.maxlength}}" 
        ng-show="model.isShow" 
        ng-pattern="model.pattern" 
        ng-required="true" /> 
       <br /> 
       {{data[model.name]}} 
      </div> 
     </div> 
    </form> 
    <br /> 
    <br /> 
</body> 

JS:

angular.module("app", []).controller("tableController", function ($scope) { 
     $scope.regEx = "/^\\d+$/"; 
     $scope.data = {}; 
     $scope.data.one = 234; 
     $scope.data.two = 32432; 
     $scope.models = [ 
      { name: "one", caption: "cOne", isDisabled: false, isShow: true, minlength: 2, maxlength: 10, pattern: "/^\d+$/" }, 
      { name: "two", caption: "cTwo", isDisabled: false, isShow: true, minlength: 2, maxlength: 5, pattern: "/^\d+$/" }, 
     ]; 
      }); 

任何建議??

-Thanks

+2

模式預計是JavaScript正則表達式,而不是字符串。 –

+0

當您在SO問題中遇到問題時,將部分代碼與Plunkr一起發佈。 – Sai

回答

12

將正則表達式賦值改爲下面的內容。因爲它應該是一個正則表達式。如果你用雙引號提到,那麼它就變成了一個字符串。

$scope.regEx = /^\d+$/; 
+1

嗨, 怎麼樣,如果我要使用模式從模型...... 它仍然有同樣的問題.. http://plnkr.co/edit/bkokVe?p=preview PLZ檢查上面plunker鏈接 – user3249448

+0

我仍然會說同樣的事情。請檢查此[plunkr](http://plnkr.co/edit/MImCWigmi4CC1WWc0EZM?p=preview) – Sai

+0

是的,它的工作正常 - 感謝 – user3249448