简体   繁体   English

使用angularjs中选中的复选框的值更新数组

[英]Update array with value of checkbox checked in angularjs

I have an array as below 我有一个数组如下

var selected = [];

$scope.listA = [
  {
    name : "Sample 1"
  },
  {
    name : "Sample 2"
  },
  {
    name : "Sample 3"
  }
];

The input html element is 输入的html元素是

<div ng-repeat="label in checkMode()">
    <input type="checkbox" checked> {{ label.name }}</input>
</div>

How can i get an array of selected values based on the checkboxes checked? 如何根据选中的复选框获取所选值的数组? For example, I want to get the below selected values 例如,我要获取以下选定的值

var selected = ["sample 1","sample 3"];

Also be able to update the array. 也能够更新阵列。

here is a simple lightweight directive that does this 这是一个简单的轻量级指令,可以执行此操作

http://vitalets.github.io/checklist-model/ http://vitalets.github.io/checklist-model/

Its very easy.. 非常简单

add one click function in checkbox, Hope this should work...ref link... jsbin 在复选框中添加一键式功能,希望它能正常工作... ref link ... jsbin

<div ng-repeat="label in checkMode()">
   <input type="checkbox" checked ng-click="toggleSelection(label.name)> {{ label.name }}</input>
</div>
$scope.listA = {
    name : "Sample 1"
  },
  {
    name : "Sample 2"
  },
  {
    name : "Sample 3"
  }
];

$scope.selected=[];

  $scope.toggleSelection = function toggleSelection(selected) {
    var idx = $scope.selected.indexOf(selected);

    // is currently selected
    if (idx > -1) {
      $scope.selected.splice(idx, 1);
    }

    // is newly selected
    else {
      $scope.selected.push(fruitName);
    }
  };

You can use ng-checked to achieve this like 您可以使用ng-checked来实现

 var app = angular.module('my-app', [], function() {}) app.controller('AppController', function($scope) { $scope.selected = ['Sample 2']; $scope.listA = [{ name: "Sample 1" }, { name: "Sample 2" }, { name: "Sample 3" }]; $scope.toggleChecked = function(item) { var index = $scope.selected.indexOf(item.name); if (index == -1) { $scope.selected.push(item.name); } else { $scope.selected.splice(index, 1); } } }) 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="my-app"> <div ng-controller="AppController"> <div ng-repeat="label in listA"> <input type="checkbox" ng-checked="selected.indexOf(label.name) > -1" ng-click="toggleChecked(label)">{{ label.name }} </div> <pre>{{selected}}</pre> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM