gpt4 book ai didi

javascript - 如何在angularjs中只获取选中的复选框?

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:22 24 4
gpt4 key购买 nike

我有 ng-repeated 数据,我试图只获取用户选择的数据。不过我不确定该怎么做,这就是我所拥有的:

HTML:

<div data-ng-controller="MyCtrl">
<ul>
<li data-ng-repeat="record in records">
<input type="checkbox" ng-model="record.Id"> {{record.Id}}
</li>
</ul>
<a href="javascript:;" data-ng-click="ShowSelected()">Show Selected</a>
</div>

JS:

function MyCtrl($scope) 
{
$scope.records = [ { "Id": 1 }, { "Id": 2 }, { "Id": 3 } ];
$scope.ShowSelected = function()
{
// how can I get only the selected records here ?
}
}

我确实以一种方式让它工作 - 通过向每个对象添加 isSelected:false 属性并将复选框的 ng-model 更改为 record。 isSelected,然后我可以在 ShowSelected 函数中对其进行过滤。虽然这看起来效率不高,但如果可以避免的话,我不想向模型添加额外的属性。

有没有更好的办法?

最佳答案

JavaScript

var app = angular.module('plunker', ['ui']);

app.controller('MyCtrl', function($scope) {
$scope.records = [ { "Id": 1 }, { "Id": 2 }, { "Id": 3 } ];
$scope.selected = {};
$scope.ShowSelected = function() {
$scope.records = $.grep($scope.records, function( record ) {
return $scope.selected[ record.Id ];
});
};
});

HTML

<div data-ng-controller="MyCtrl">
<ul>
<li data-ng-repeat="record in records">
<input type="checkbox" ng-model="selected[record.Id]"> {{record.Id}}
</li>
</ul>
<a href="javascript:;" data-ng-click="ShowSelected()">Show Selected</a>
</div>

http://plnkr.co/edit/lqtDQ6

您可以单独存储标志并使用它来过滤数据。

更新了 plunk,因为一些 CDN 链接已损坏。

关于javascript - 如何在angularjs中只获取选中的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com