Javascript 选择JSON对象的子集&;数一数
我在这里过得很愉快,可能是因为我对棱角分明的东西还不太熟悉,而且我还没有完全掌握一切 首先是场景,然后是一些代码: 我有一个从API调用中获取JSON对象的按钮。它变成$scope.collectorsJavascript 选择JSON对象的子集&;数一数,javascript,angularjs,checkbox,filter,Javascript,Angularjs,Checkbox,Filter,我在这里过得很愉快,可能是因为我对棱角分明的东西还不太熟悉,而且我还没有完全掌握一切 首先是场景,然后是一些代码: 我有一个从API调用中获取JSON对象的按钮。它变成$scope.collectors $http.post('get', $scope.formData).success(function(data) { $scope.collectors = data.results; ... 然后我用复选框把这些项目列成一个大列表,这样你就可以选择你想处理的项目。当你选择了你想要的
$http.post('get', $scope.formData).success(function(data) {
$scope.collectors = data.results;
...
然后我用复选框把这些项目列成一个大列表,这样你就可以选择你想处理的项目。当你选择了你想要的,你可以点击另一个按钮来收集所有这些信息,并对它们进行批量操作
这就是整个故事。他们认为我遇到的问题有两个。首先,我只是简单地计算检查的项目数。我是这样做的:
JS:
$scope.selectedCollectors = {};
HTML:
<div ng-repeat="collector in collectors">
<input type="checkbox" name="collector-id"
value="{{collector.id}}"
ng-model="selectedCollectors[collector.id]">
</div>
<p>Debug: {{ selectedCollectors }}</p>
<p>There are {{ selectedCollectors.length }} items checked</p>
但是{{selectedCollectors.length}}从不增加或显示任何内容
第二件事基本上是我要做的,就是根据用户的选择,获取原始JSON对象的子集。除了循环遍历$scope.collectors中的每个项并将ID与selectedCollectors中的ID进行比较外,还有更好的方法获取此子集吗
有些东西让我觉得我应该把这个JSON对象变成一个纯数组,但也许不是
非常感谢您的建议和帮助。这是我的解决方案
首先,我让angular向选中的收集器对象添加一个“selected”属性:
然后,第二次ng重复创建选定收集器的筛选子集:
请注意,第二次ng重复并没有生成任何标记-只生成selectedCollectors数组,它可以像范围变量一样访问。collectors是数组对吗?
selectedCollectors
是一个对象,因此它没有length
属性。
{"8596784":true,"7458347":true}