如何获取 angularjs 中的复选框值?
How to get checkbox value in angularjs?
我的 ng-view 中有一个 10(或 n)个复选框。现在我想在这里问
检查复选框是否被选中以及如果被选中获取复选框的值的最有效或最简单的方法是什么。
<ul>
<li ng-repeat="album in albums">
<input type="checkbox" ng-model="folder.Selected" value={{album.name}} />
</li>
</ul>
我有 ng-controller(getAlbumsCtrl),因为我有一个数组,我想在其中将所有选中的相册名称推送到 albumNameArray
看看这个fiddle,我用过key为相册名的对象
<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)
});
}}
你可以在这里简单地使用 angular 过滤器,你的 ng-model
应该是 album.Selected
而不是 folder.Selected
Html
{{(albums | filter : { Selected: true }: true)}}
控制器
$scope.albumNameArray = $filter('filter')($scope.albums, { Selected: true }, true);
Before using it in controller don't forget to add $filter
in your
controller
您可以循环遍历数组以找出选中的内容并将其推入名称数组。
<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;
});
}
如果你想得到打印出来的值。
你可以像这样使用:
input type="checkbox" ng-model="checkboxModel.value2" ng-true-value="'YES'" ng-false-value="'NO'"
我的 ng-view 中有一个 10(或 n)个复选框。现在我想在这里问 检查复选框是否被选中以及如果被选中获取复选框的值的最有效或最简单的方法是什么。
<ul>
<li ng-repeat="album in albums">
<input type="checkbox" ng-model="folder.Selected" value={{album.name}} />
</li>
</ul>
我有 ng-controller(getAlbumsCtrl),因为我有一个数组,我想在其中将所有选中的相册名称推送到 albumNameArray
看看这个fiddle,我用过key为相册名的对象
<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)
});
}}
你可以在这里简单地使用 angular 过滤器,你的 ng-model
应该是 album.Selected
而不是 folder.Selected
Html
{{(albums | filter : { Selected: true }: true)}}
控制器
$scope.albumNameArray = $filter('filter')($scope.albums, { Selected: true }, true);
Before using it in controller don't forget to add
$filter
in your controller
您可以循环遍历数组以找出选中的内容并将其推入名称数组。
<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;
});
}
如果你想得到打印出来的值。
你可以像这样使用:
input type="checkbox" ng-model="checkboxModel.value2" ng-true-value="'YES'" ng-false-value="'NO'"