2017-10-16 3 views
0

사용자가 4 자리를 9999로 입력하면 오류 메시지를 표시하는 텍스트 상자의 유효성을 검사해야합니다. ng-pattern 메서드를 사용하여 오류 메시지를 표시했지만 ng- 패턴은 아래에 주어진 object.my 코드를 업데이트 할 수 없습니다 : NG-를 keyDown 방법에서각도 js Ng 패턴에서 모델 업데이트를 허용하지 않습니다

<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; 
     } 

모델이 update.it이 vm.formName.numCode에서 정의되지 않은 표시하지 않았다 $ viewvalue를.. 친절하게도이 문제를 해결할 수 있도록 도와주세요 & 내 ng-pattern.if를 확인하십시오. ng-pattern을 제거하면 업데이트 된 모델이 있음을 의미합니다.

+0

당신은'vm.testCode()'메소드의 상대 코드와'vm.testCode()'의 관련된 메소드를 추가 할 수도 있습니다 – Andrei

+0

오직 나에게 보이지 않는 것은 ** Value **에 소문자 ** v ** – Andrei

+0

내 코드를 업데이트했는데 문제가 ng-pattern과 같습니다. 모델을 제거하면 모델이 – Sathish

답변

0

이 플러낙을 확인하십시오.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> 

는 별도의 라이브러리로 각-메시지를 참조 있나요? 유효한 텍스트와 오류 메시지가 올바르게 표시되면 명령 입력이 작동합니다.