2017-09-11 10 views
0

私はasp.net mvc 5とangularjsを使用してWebアプリケーションを開発しています。私はなぜNGショーが動作していないか、メッセージを表示していないのだろうと思っています。なぜng-showが正しく動作していないのですか?

angularjsコード:

vm.checkEmailFormat = function() { 
     var email = $(".pv-company-email").val(); 

     var regex = /^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/i; 

     vm.validEmailFormat = (regex.test(email)); 

     if (vm.validEmailFormat) { 
      vm.pageValidated = true; 
     } else { 
      vm.pageValidated = false; 
     } 
    } 

ビューコード:

<div class="row"> 
    <div class="col-md-3 settings-padding"><span class="textdescription"><strong>Email Address</strong></span></div> 
    <div class="col-md-6 settings-padding"> 
    <input type="text" ng-model="vm.organisation.Email" ng-blur="vm.checkIsEmailBlank()" ng-keyup="vm.checkEmailFormat()" placeholder="Email" class="form-control comp pv-company-email" style="max-width:420px;" maxlength="250" /> 
    </div> 
    <div class="col-md-3 settings-padding"><span class="error company-error" ng-show="!vm.validEmailFormat"><span class="company-border-top"><i class="fa fa-times-circle ngdialog-register-erroricon" aria-hidden="true"></i></span> &nbsp;&nbsp;&nbsp;Invalid email format.</span> 
    </div> 
    @* 
    <div class="col-md-3 settings-padding"><span class="error company-error" ng-show="vm.isEmailEmpty"><span class="company-border-top"><i class="fa fa-times-circle ngdialog-register-erroricon" aria-hidden="true"></i></span> &nbsp;&nbsp;&nbsp;Email is required.</span> 
    </div> 
    <div class="col-md-3 settings-padding"><span class="error company-error" ng-show="vm.validEmailLength"><span class="company-border-top"><i class="fa fa-times-circle ngdialog-register-erroricon" aria-hidden="true"></i></span> &nbsp;&nbsp;&nbsp;Must be 50 characters long only.</span> 
    </div>*@ 

</div> 
+0

あなたのコントローラでこれを行うことができます** var vm = this; ** – Raghav

答えて

0

ここでは、ビュー内の変数の変更を適用する必要があります。 次試してみてください。

if (vm.validEmailFormat) { 
    $scope.$apply(function() { 
     vm.pageValidated = true; 
    }); 
} 
else{ 
    $scope.$apply(function() { 
     vm.pageValidated = false; 
    }) 
} 
2

ビューで、vm.<input type="text" ng-model="controllerAliseName.organisation.Email" ng-blur="controllerAliseName.checkIsEmailBlank()" ng-keyup="controllerAliseName.checkEmailFormat()" placeholder="Email" class="form-control comp pv-company-email" style="max-width:420px;" maxlength="250" /> Insetadを使用する必要がある、とあなたはng-model="controllerAliseName.organisation.Email"がボケ関数に空で見つけたらvm.isEmailEmptyフラグがtrueにする必要があります。あなたは状態をチェックしていません

関連する問題