mik*_*kel 8 javascript angularjs
我有ng-repeat
ed数据,我试图只获取用户选择的数据.我不知道怎么做,这就是我所拥有的:
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>
Run Code Online (Sandbox Code Playgroud)
JS:
function MyCtrl($scope)
{
$scope.records = [ { "Id": 1 }, { "Id": 2 }, { "Id": 3 } ];
$scope.ShowSelected = function()
{
// how can I get only the selected records here ?
}
}
Run Code Online (Sandbox Code Playgroud)
我确实以一种方式工作 - 通过向isSelected:false
每个对象添加属性ng-model
并将复选框更改为record.isSelected
,我可以在ShowSelected
函数中对其进行过滤.这似乎效率低下,我不想为模型添加额外的属性,如果可以避免它.
有没有更好的办法 ?
Tos*_*osh 12
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 ];
});
};
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
您可以单独存储该标志并使用它来过滤数据.
归档时间: |
|
查看次数: |
36857 次 |
最近记录: |