J'ai une case à cocher 10 (ou n) dans ma vue ng. Maintenant, je voudrais demander ici que Quel est le moyen le plus efficace ou le plus simple de vérifier si la case à cocher est cochée et si cochée, obtenir la valeur de la case à cocher.
<ul>
<li ng-repeat="album in albums">
<input type="checkbox" ng-model="folder.Selected" value={{album.name}} />
</li>
</ul>
J'ai ng-controller (getAlbumsCtrl) , en ce sens que j'ai un tableau dans lequel je veux pousser tous les noms d'albums cochés dans albumNameArray
Vous pouvez parcourir le tableau pour déterminer lequel est sélectionné et insérer dans le tableau de noms.
<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;
});
}
Regardez ce violon , j'ai utilisé l'objet dont la clé est le nom de l'album
<input type="checkbox" ng-model="folder[album.name]" value={{album.name}}/>
manette:
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)
});
}}
Vous pouvez simplement utiliser un filtre angulaire ici, votre ng-model
devrait aussi être album.Selected
au lieu de folder.Selected
Html
{{(albums | filter : { Selected: true }: true)}}
Manette
$scope.albumNameArray = $filter('filter')($scope.albums, { Selected: true }, true);
Avant de l'utiliser dans le contrôleur, n'oubliez pas d'ajouter
$filter
dans votre manette
Si vous voulez obtenir la valeur imprimée.
Vous pouvez utiliser comme:
input type="checkbox" ng-model="checkboxModel.value2" ng-true-value="'YES'" ng-false-value="'NO'"