Как получить значение флажка в angularjs?

У меня есть 10 (или n) флажок в моем ng-представлении. Теперь я хотел бы спросить здесь, что Какой самый эффективный или простой способ проверить, установлен ли флажок и установлен ли флажок, получить значение флажка.

 <ul>
  <li ng-repeat="album in albums">
   <input type="checkbox" ng-model="folder.Selected" value={{album.name}} />
   </li>
  </ul>

У меня есть ng-controller (getAlbumsCtrl) , так как у меня есть массив, в который я хочу вставить имена всех отмеченных альбомов в albumNameArray

12 голосов | спросил Kgn-web 27 J0000006Europe/Moscow 2015, 19:14:01

4 ответа


0

Вы можете перебрать массив, чтобы узнать, какой из них выбран, и вставить его в массив имен.

<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;
  });
}

jsbin

ответил Icycool 27 J0000006Europe/Moscow 2015, 20:54:00
0

Посмотрите на эту скрипку , я использовал объект, ключом которого является название альбома

<input type="checkbox" ng-model="folder[album.name]" value={{album.name}}/>

контроллер:

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)
    });
}}
ответил Praveen 27 J0000006Europe/Moscow 2015, 20:06:08
0

Вы можете просто использовать здесь угловой фильтр, также ваш ng-model должен быть album.Selected вместо folder.Selected

Html

{{(albums | filter : { Selected: true }: true)}}

контроллер

$scope.albumNameArray = $filter('filter')($scope.albums, { Selected: true }, true);
  

Прежде чем использовать его в контроллере, не забудьте добавить $filter в свой   контроллер

ответил Pankaj Parkar 27 J0000006Europe/Moscow 2015, 20:40:45
0

Если вы хотите напечатать значение.
Вы можете использовать как:

input type="checkbox" ng-model="checkboxModel.value2" ng-true-value="'YES'" ng-false-value="'NO'" 
ответил Luckieee 22 FebruaryEurope/MoscowbThu, 22 Feb 2018 10:24:15 +0300000000amThu, 22 Feb 2018 10:24:15 +030018 2018, 10:24:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132