Javascript 通过单击按钮获取选定的复选框项目

Javascript 通过单击按钮获取选定的复选框项目,javascript,angularjs,checkbox,angularjs-ng-repeat,Javascript,Angularjs,Checkbox,Angularjs Ng Repeat,如何通过单击按钮在重复列表中选中复选框项目的ID,并将项目添加到变量/数组中以供以后使用 html: 您可以对多个选择使用ng选项。更有用 <select name="movies" ng-model="selectedMovieIDs" ng-options="m.MovieID as m.MovieID for m in movies"> </select> 更多信息:您可以创建一个自定义筛选器,该筛选器将返回选定的值id,为此您需要将两个参数传递给筛选器。

如何通过单击按钮在重复列表中选中复选框项目的ID,并将项目添加到变量/数组中以供以后使用

html:


您可以对多个选择使用ng选项。更有用

<select name="movies" ng-model="selectedMovieIDs" 
ng-options="m.MovieID as m.MovieID for m in movies">

</select>


更多信息:

您可以创建一个自定义筛选器,该筛选器将返回选定的值id,为此您需要将两个参数传递给筛选器。第一个参数将执行检查,如果为真,则将从筛选器返回第二个参数属性数组

标记

<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>

那篇文章中答案的可能重复实际上对我有所帮助,但并非完全如此。选择完成后,如何通过单击按钮(如console.log)访问$scope.selection值并查看对象或将其保存在会话变量中。也许我对这一切的态度都是错误的。和我一起裸体吧,伙计们,我还真的很新鲜。不是所有的复选框都有相同的型号吗?此外,所有电影都需要在一个数组中,因为您可以检查多部电影。@jcubic我正在子作用域内创建的
ng repeat
中创建。这样无论如何都是唯一的。更合适的方法是执行
m.checked
我找到“ng change=”checked&$parent.selectedMovie=m.MovieID“”您介意解释一下吗?@redM update
selectedMovie
仅当复选框被选中时,如果复选框未被选中,则条件将为false&
$parent。selectedMovie
将不会更新。我对此有点慢,我不认为这是我想要的。我将对这个问题进行编辑。
<select name="movies" ng-model="selectedMovieIDs" 
ng-options="m.MovieID as m.MovieID for m in movies">

</select>
<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;
  }
});