2017-01-30 149 views
-1

我正在使用AngularJs。我在controller.js文件中創建了一條錯誤消息,並希望將錯誤消息發送到index.html。我已經使用了下面的代碼,但不知道如何將它傳遞給span元素,並從錯誤消息中刪除字符「,」。下面是使用的代碼:在jQuery中添加錯誤消息並在span中顯示+ 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的,這是我目前有如下:

<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) And 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; 

};