2017-10-16 32 views
0

我必須驗證顯示錯誤消息的文本框,當用戶輸入4位數字爲9999.so時,我使用了ng-pattern方法來顯示錯誤消息,但ng-模式不允許更新object.my代碼下面給出:Angular js Ng-pattern不允許更新模型

<md-input-container class="" style="margin:5px 0px; margin-right:15px;"> 

     <input type="password" name="numCode" ng-model="datas.part[1].Value" ng-value="datas.part[1].Value" maxlength="4" ng-pattern="/(?!9{4})\d{4}/" ng-keydown="vm.testCode(datas.part[1].Value)" class="ng-pristine ng-valid md-input ng-touched" aria-invalid="false" style="" autocomplete="off" required> 
     <div ng-messages="vm.formName.numCode.$error" class="allign-padding-bottom" role="alert"> 
      <div ng-message-exp="['minlength','maxlength','pattern']"> 
         {{::'testcode'|translate}} 
      </div> 
     </div> 
    </md-input-container> 

vm.testCode= function (val) { 
      console.info("sdf",val); 
      vm.showConfirmUserCode = true; 
      ///vm.isDeviceEnabled = false; 
     } 

在NG-的keydown方法,模型沒有update.it顯示vm.formName.numCode未定義$ viewvalue。請幫我解決這個問題&檢查我的ng-pattern.if我刪除我的ng-pattern意味着我有更新的模型

+0

你還可以在'vm.testCode()'方法和'vm.testCode()' – Andrei

+0

裏面添加相關的代碼嗎?只有我看來是**值**可能需要有一個小寫** v ** – Andrei

+0

我已經更新了我的代碼,我的問題與ng-pattern有關,因爲如果我刪除它,意味着模型會更新 – Sathish

回答

0

請檢查這個plunker: http://plnkr.co/edit/g0wsbFnfi6TEW76orxIJ?p=preview

<body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 

    <form name="form1" novalidate> 

    <input type="password" name="numCode" ng-model="inputText" ng-value="inputText" ng-pattern="/(?!9{4})\d{4}/" ng-maxlength="4" ng-keydown="testCode(inputText)" aria-invalid="false" style="" autocomplete="off" required> 
    <div ng-messages="form1.numCode.$error" role="alert"> 
      <div ng-message="pattern">pattern error</div> 
      <div ng-message="maxlength">maxlength error</div> 
      <div ng-message="required">required error</div> 
    </div> 
</form> 
    </body> 

你有參考角的消息作爲一個單獨的圖書館嗎?如果ng-keydown的有效文本和錯誤消息正確顯示,它將起作用。