【发布时间】:2013-09-04 00:32:29
【问题描述】:
在尝试实现复选框功能时,我无法获取用户选择了哪些复选框。这是怎么做到的? 下面是我的 HTML sn-p:
<td>
<table border="0"><th>Tier</th>
<tr ng-repeat="item in tiertype">
<td>
<label class="checkbox" for="{{item.id}}">
<input type="checkbox" ng-model="selection.ids[item.id]" name="tier_class" ng-checked="item.checked" id="{{item.id}}"/>{{item.name}}
</label>
</td></tr></table>
</td>
下面是我的javascript sn-p:
$scope.tiertype = [
{ id: 1, name: "All", checked: true},
{ id: 2, name: "Standard", checked: false },
{ id: 3, name: "Unreserved", checked: false },
{ id: 3, name: "Reserved", checked: false },
{ id: 4, name: "General", checked: false }
];
我在使用“复选框值 = {{selection.ids}}”时没有得到正确的值。此外,在检查任何复选框时,都会检查所有复选框或 id:1 的复选框(默认值)。 对我来说似乎很奇怪,无法弄清楚。我在哪里错了,因为我在 AngularJS 方面没有太多经验。
【问题讨论】:
-
将您的 ngModel 更改为
ng-model="item.checked" -
我整理了一个应该有帮助的 jsFiddle。 Checkbox Fiddle 关键是使用指令。
-
检查所有复选框等的一个问题由此解决了,但是我如何知道在 js 端使用范围等来知道用户检查了哪些复选框?
标签: javascript angularjs angularjs-scope