I have ng-repeat
ed data, and am trying to get only the ones the user has selected. I'm not sure how to do it though, this is what I have:
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 ?
}
}
I did get it working one way - by adding a isSelected:false
property to each object and changing the ng-model
of the checkbox to record.isSelected
, I can then filter on that in the ShowSelected
function. This seems inefficient though, I don't want to be adding extra properties to the model if can avoid it.
Is there a better way ?