单击按钮获取选定的复选框项目
Get Selected check box items from a click of a button
如何通过单击按钮在重复列表中获取 checked 复选框项目的 ID 并将项目添加到供以后使用的变量/数组?
html:
<input id="btnCheck" type="button" value="Next" ng-click="addSelected()" />
<div ng-controller="movieController">
<ul>
<li ng-repeat="movie in Movies">
<input id="chkBox-{{ movie.MovieID }}"
type="checkbox"
ng-checked="selection.indexOf(movie.MovieID) > -1"
ng-click="toggleSelection(movie.MovieID)"
/>
</li>
</ul>
</div>
脚本:
$scope.AddSelected = function () {
var selected = $scope.selection
console.log(selected);
}
$scope.selection = [];
$scope.toggleSelection = function toggleSelection(movie) {
var idx = $scope.selection.indexOf(movie);
if (idx > -1) {
$scope.selection.splice(idx, 1);
}
else {
$scope.selection.push(movie);
}
};
您可以对多个 select 使用 ng-options。更有用;
<select name="movies" ng-model="selectedMovieIDs"
ng-options="m.MovieID as m.MovieID for m in movies">
</select>
更多信息:ngOptions
您可以创建一个自定义过滤器,它将 return 一个选定的值 id,为此您需要传递两个参数来过滤第一个参数将执行检查,如果为真则第二个参数 属性数组将从过滤器 return。
标记
<body ng-app="app">
<div ng-controller="movieController">
{{(Movies | returnPropertyWhenCheckedTrue: 'checked' :'MovieID')}}
<ul>
<li ng-repeat="m in Movies">
<input id="chkBox-{{ m.MovieID }}" type="checkbox" ng-model="m.checked"/>
</li>
</ul>
</div>
</body>
过滤器
app.filter('returnPropertyWhenCheckedTrue', function() {
return function(array, propertyToChecked, property) {
var returnArray = [];
angular.forEach(array, function(value, index) {
if (value[propertyToChecked])
returnArray.push(value[property]);
});
return returnArray;
}
});
如何通过单击按钮在重复列表中获取 checked 复选框项目的 ID 并将项目添加到供以后使用的变量/数组?
html:
<input id="btnCheck" type="button" value="Next" ng-click="addSelected()" />
<div ng-controller="movieController">
<ul>
<li ng-repeat="movie in Movies">
<input id="chkBox-{{ movie.MovieID }}"
type="checkbox"
ng-checked="selection.indexOf(movie.MovieID) > -1"
ng-click="toggleSelection(movie.MovieID)"
/>
</li>
</ul>
</div>
脚本:
$scope.AddSelected = function () {
var selected = $scope.selection
console.log(selected);
}
$scope.selection = [];
$scope.toggleSelection = function toggleSelection(movie) {
var idx = $scope.selection.indexOf(movie);
if (idx > -1) {
$scope.selection.splice(idx, 1);
}
else {
$scope.selection.push(movie);
}
};
您可以对多个 select 使用 ng-options。更有用;
<select name="movies" ng-model="selectedMovieIDs"
ng-options="m.MovieID as m.MovieID for m in movies">
</select>
更多信息:ngOptions
您可以创建一个自定义过滤器,它将 return 一个选定的值 id,为此您需要传递两个参数来过滤第一个参数将执行检查,如果为真则第二个参数 属性数组将从过滤器 return。
标记
<body ng-app="app">
<div ng-controller="movieController">
{{(Movies | returnPropertyWhenCheckedTrue: 'checked' :'MovieID')}}
<ul>
<li ng-repeat="m in Movies">
<input id="chkBox-{{ m.MovieID }}" type="checkbox" ng-model="m.checked"/>
</li>
</ul>
</div>
</body>
过滤器
app.filter('returnPropertyWhenCheckedTrue', function() {
return function(array, propertyToChecked, property) {
var returnArray = [];
angular.forEach(array, function(value, index) {
if (value[propertyToChecked])
returnArray.push(value[property]);
});
return returnArray;
}
});