How to get checkbox value in angularjs?
You can loop over the array to find out which is selected and push into the name array.
<ul> <li ng-repeat="album in albums"> <input type="checkbox" ng-model="album.selected" value={{album.name}} /> </li></ul>$scope.save = function(){ $scope.albumNameArray = []; angular.forEach($scope.albums, function(album){ if (!!album.selected) $scope.albumNameArray.push(album.name); })}// alternatively you can use Array.prototype.filter on newer browsers (IE 9+)$scope.save = function(){ $scope.albumNameArray = $scope.albums.filter(function(album){ return album.selected; });}
Have a look at this fiddle,i have used the object whose key is the album name
<input type="checkbox" ng-model="folder[album.name]" value={{album.name}}/>
controller:
function ctrl($scope){$scope.albums = [{name:'a1'},{name:'a2'},{name:'a3'}];$scope.folder = {};$scope.albumNameArray = [];$scope.getAllSelected = function(){ angular.forEach($scope.folder,function(key,value){ if(key) $scope.albumNameArray.push(value) });}}
You could simply use angular filter here, also your ng-model
should be album.Selected
instead of folder.Selected
Html
{{(albums | filter : { Selected: true }: true)}}
Controller
$scope.albumNameArray = $filter('filter')($scope.albums, { Selected: true }, true);
Before using it in controller don't forget to add
$filter
in your controller