체크박스 값을 AngularJS 컨트롤러의 목록에 바인딩하려면 다음 두 가지 접근 방식을 활용할 수 있습니다.
이 접근 방식에서는 HTML 마크업이 유사함:
<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>
해당 컨트롤러 코드가 바인딩을 처리합니다:
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 ... }; }]);
장점:
단점
또는 객체 배열을 사용할 수도 있습니다. 입력 데이터:
<label ng-repeat="fruit in fruits"> <input type="checkbox" name="selectedFruits[]" value="{{fruit.name}}" ng-model="fruit.selected" > {{fruit.name}} </label>
컨트롤러 논리는 다음과 같이 유지됩니다.
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); }]);
장점:
단점:
각 솔루션은 장점과 단점을 갖고 있으므로 애플리케이션의 특정 요구 사항에 따라 가장 적합한 접근 방식을 선택해야 합니다.
위 내용은 AngularJS에서 체크박스 값을 목록에 효과적으로 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!