2016-12-19 4 views
0

In meiner HTML-Seite habe ich Tabelle, in der jede Zeile, gibt es ein Kontrollkästchen.JQuery und Bootstrap basierte Toaster

Meine Anforderung ist, wenn mehr als eine Zeile ausgewählt ist, d. H. Wenn die Array-Länge 2 ist, muss eine Toaster-Nachricht angezeigt werden.

habe ich einen Anwendungsfall gibt, und es ist,

  1. wenn i 2 Zeilen auswählen (Arraylänge ist 2), was zeigt, wird Nachricht.
  2. Wählen Sie dann die dritte Zeile (Array-Länge ist 3) und deaktivieren Sie erneut die 3. Zeile (Array-Länge ist wieder 2).
  3. Jetzt zeigt es auch die Nachricht an. Hier will ich diesen Toast nicht.

Mein Ansatz ist:

$scope.toggleOne = function() { 
     if ($scope.selectedUsers.length === 2) { 
      showMessage(); 
     } 
     for (var j = 0; j < $scope.users.length; j++) { 
      if (!$filter('filter')($scope.selectedUsers, $scope.users[j].id, true).length) { 
       $scope.selectAllCheckboxOfUsers = false; 
       return; 
      } 
     } 
     $scope.selectAllCheckboxOfUsers = true; 
    } 
+0

versuchen, diese Seite zu lesen: http://stackoverflow.com/help/how-to-ask – mike510a

+0

1. Dont zeigen Nachricht mehr als zweimal –

+0

2. alle Auswahl merken und nicht zeigen, wenn die Auswahl schon war –

Antwort

0

Wenn Sie die Nachricht nur angezeigt werden soll, wenn ausgewählt von 1 bis 2 ausgewählt gehen, können Sie, dass der Check:

var previousSelectedNum = 0; 

$scope.toggleOne = function() { 

    if ($scope.selectedUsers.length === 2 && previousSelectedNum === 1) { 
     showMessage(); 
    } 

    // ... 

    previousSelectedNum = $scope.selectedUsers.length; 
} 
0

Sie verwenden können ein Flag wie zB

Dann in Ihrer Funktion verwenden Sie als,

$scope.toggleOne = function() { 
    if($scope.selectedUsers.length === 1){ 
     isMessageShown = false; 
    } 
    if ($scope.selectedUsers.length === 2 && !isMessageShown) { 
     isMessageShown = true; 
     showMessage(); 
    } 
    for (var j = 0; j < $scope.users.length; j++) { 
     if (!$filter('filter')($scope.selectedUsers, $scope.users[j].id, true).length) { 
      $scope.selectAllCheckboxOfUsers = false; 
      return; 
     } 
    } 
    $scope.selectAllCheckboxOfUsers = true; 
}