2017-01-30 7 views
-1

私はAngularJsを使用しています。私はcontroller.jsファイルにエラーメッセージを作成しており、index.htmlにエラーメッセージを送信したいとします。私は以下のコードを使用しましたが、span要素に渡す方法と、エラーメッセージから文字 "、"を取り除く方法についてはわかりません。以下のコードが使用されます。jQueryにエラーメッセージを追加し、スパンで表示+ AngularJs

//controller.js

$scope.isAllDateTimeMissing = false; 

$scope.add = function() { 

     if (!$scope.mainForm.$valid) { 
      alert("Form is not valid") 
     } 
     else { 
      var msg = "Please select "; 

      if ((jQuery('#startDatepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = msg + "Start Date"; 
      } 
      if((jQuery('#endDatepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = msg + ",End Date"; 
      } 

      if ((jQuery('#startTimepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = msg + ",Start Time"; 
      } 
      if ((jQuery('#endTimepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = msg + ",End Time"; 
      } 
}; 
私は現在のように持っているのindex.htmlに "MSG"、合格へのWAN

:また

<span class="error" ng-show="submitted == true && isAllDateTimeMissing"></span> 

を、別の問題は、終了日のみが空の値を持つ場合、メッセージから文字「、」を削除したい場合です。 これを達成するには? おかげ

答えて

1

チェックするためisMessagedとしてのようなフラグを使用して、エラーメッセージから ""

を文字を削除カンマに機能が追加されている場合は

// Jsのコード

$scope.isAllDateTimeMissing = false;  
$scope.add = function() {    
     if (!$scope.mainForm.$valid) { 
      alert("Form is not valid") 
     } 
     else { 
      var msg = "Please select "; 
      var isMessaged = false; 

      if ((jQuery('#startDatepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = msg + "Start Date"; 
       isMessaged = true; 
      } 
      if((jQuery('#endDatepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 

       msg = isMessaged == false? msg+ " End Date": msg + ",End Date"; 
       isMessaged=true; 
      } 

      if ((jQuery('#startTimepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = isMessaged == false? msg+ " Start Time": msg + ",Start Time"; 
       isMessaged=true; 

      } 
      if ((jQuery('#endTimepicker').val() == "")) 
      { 
       $scope.isAllDateTimeMissing = true; 
       msg = isMessaged == false? msg+ " End Time": msg + ",End Time"; 
      } 

$scope.FinalMessage=msg; 
}; 

が、span要素

// htmlコード除去するため

<span class="error" ng-show="submitted == true && isAllDateTimeMissing"> 
    {{FinalMessage}} 
</span> 
1

1)ストアmsgあなた範囲中:

$scope.msg = "Please select "; 

2)あなたはそれを更新すると、スコープににそれを更新することを忘れないでください:

if(...) { 
    $scope.msg += ", End Time"; 
} else if { 
    ... 
} 

3)そしてf inally、あなたのスパンで:

<span class="error" ng-show="submitted == true && isAllDateTimeMissing"> 
    {{msg}} 
</span> 
1

あなたはそれを表示するには、コントローラ&利用NG-バインドまたは{{MSG}}に$の範囲に文字列を入れて、その後、ビューにメッセージを表示したい場合。

例: 内部コントローラ:テンプレートに $scope.msg = "Please select ";

<span class="error" ng-show="<your condition>" ng-bind="msg"></span> OR <span class="error" ng-show="<your condition>">{{msg}}</span>

0

'' 簡単なコードにそれを渡す方法がわかりません。

$ scope.isAllDateTimeMissing = false;

$ scope。add = function(){

if (!$scope.mainForm.$valid) { 
     alert("Form is not valid") 
    } 
    else { 
     var msg = "Please select "; 
     var errMsg = ""; 

     if ((jQuery('#startDatepicker').val() == "")) 
     { 
      $scope.isAllDateTimeMissing = true; 
      errMsg = errMsg + "Start Date"; 
     } 
     if((jQuery('#endDatepicker').val() == "")) 
     { 
      $scope.isAllDateTimeMissing = true; 
      errMsg = errMsg + ",End Date"; 
     } 

     if ((jQuery('#startTimepicker').val() == "")) 
     { 
      $scope.isAllDateTimeMissing = true; 
      errMsg = errMsg + ",Start Time"; 
     } 
     if ((jQuery('#endTimepicker').val() == "")) 
     { 
      $scope.isAllDateTimeMissing = true; 
      errMsg = errMsg + ",End Time"; 
     } 
     if(errMsg.charAt(0)==","){ 
        errMsg.substr(1); 
     } 

     msg = msg + errMsg; 

};

関連する問題