Heim > Web-Frontend > js-Tutorial > Wie binde ich Kontrollkästchenwerte effektiv an Listen in AngularJS?

Wie binde ich Kontrollkästchenwerte effektiv an Listen in AngularJS?

Mary-Kate Olsen
Freigeben: 2024-11-24 00:22:11
Original
673 Leute haben es durchsucht

How to Effectively Bind Checkbox Values to Lists in AngularJS?

Binden an Listen von Kontrollkästchenwerten mit AngularJS

Um Kontrollkästchenwerte an eine Liste in einem AngularJS-Controller zu binden, können Sie zwei unterschiedliche Ansätze nutzen:

Verwendung eines einfachen Arrays

Bei diesem Ansatz das HTML-Markup ähnelt:

<label ng-repeat="fruitName in fruits">
  <input
    type="checkbox"
    name="selectedFruits[]"
    value="{{fruitName}}"
    ng-checked="selection.indexOf(fruitName) > -1"
    ng-click="toggleSelection(fruitName)"
  > {{fruitName}}
</label>
Nach dem Login kopieren

Der entsprechende Controller-Code übernimmt die Bindung:

app.controller('SimpleArrayCtrl', ['$scope', function SimpleArrayCtrl($scope) {
  // Fruits: ['apple', 'orange', 'pear', 'naartjie']
  $scope.fruits = ...;

  // Selected fruits: ['apple', 'pear']
  $scope.selection = ...;

  // Toggle selection by fruit name
  $scope.toggleSelection = function toggleSelection(fruitName) {
    // ... code to manage selection ...
  };
}]);
Nach dem Login kopieren

Vorteile:

  • Einfache Datenstruktur
  • Einfaches Umschalten nach Obst Name

Nachteile:

  • Umständliche Vorgänge zum Hinzufügen/Entfernen aufgrund der Verwaltung mehrerer Listen

Verwenden eines Objekts Array

Alternativ können Sie ein Array von Objekten für die Eingabe verwenden Daten:

<label ng-repeat="fruit in fruits">
  <input
    type="checkbox"
    name="selectedFruits[]"
    value="{{fruit.name}}"
    ng-model="fruit.selected"
  > {{fruit.name}}
</label>
Nach dem Login kopieren

Die Controller-Logik bleibt wie folgt:

app.controller('ObjectArrayCtrl', ['$scope', 'filterFilter', function ObjectArrayCtrl($scope, filterFilter) {
  // Fruits: [{ name: 'apple', selected: true }, ...]
  $scope.fruits = ...;

  // Selected fruits: [/* fruit names */]
  $scope.selection = ...;

  // Helper method to filter selected fruits
  $scope.selectedFruits = function selectedFruits() {
    return filterFilter($scope.fruits, { selected: true });
  };

  // Watch `fruits` for changes
  $scope.$watch('fruits|filter:{selected:true}', function (nv) {
    // ... code to update `$scope.selection` ...
  }, true);
}]);
Nach dem Login kopieren

Vorteile:

  • Erleichtertes Hinzufügen/Entfernen Operationen

Nachteile:

  • Komplexere Datenstruktur
  • Umständliches Umschalten nach Namen (erfordert Hilfsmethoden)

Vergleich

Jede Lösung bietet ihre Vorteile und Nachteile, daher hängt die Auswahl des besten Ansatzes von den spezifischen Anforderungen Ihrer Anwendung ab.

Das obige ist der detaillierte Inhalt vonWie binde ich Kontrollkästchenwerte effektiv an Listen in AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage