AngularJS 复选框 ng-repeat 和选定对象?
Posted
技术标签:
【中文标题】AngularJS 复选框 ng-repeat 和选定对象?【英文标题】:AngularJS checkbox ng-repeat and selected objects? 【发布时间】:2013-01-27 20:42:18 【问题描述】:我试图以适当的方式减少痛苦,但我不知道如何处理 ng-model 并将其绑定到选定的列表等,而且我需要在以后填充该列表和将选定的对象保留在其中。
categories = [ "name": "Sport", "id": "50d5ad" , "name": "General", "id": "678ffr" ]
<span ng-repeat="category in categories">
<label class="checkbox" for="category.id">
<input type="checkbox" value="category.id" ng-model="??" ng-click="??" name="group" id="category.id" />
category.name
</label>
</span>
每次填充列表时我都必须覆盖类别,因为它将从服务器中提取出来。
所以我想我需要有数组,而第二个将保存选定的对象?
如果我是对的,我该如何预选复选框?
我是否需要 ng-click 才能调用自定义函数将所选对象存储在另一个数组中?
我需要在复选框中使用 ng-model 吗?为什么?
什么是少痛苦的正确方法?
【问题讨论】:
【参考方案1】:每次填充列表时,我都必须覆盖类别 因为它将被拉出表单服务器。所以我想我需要 数组,第二个将保存选定的对象?
是的,因为它是一个列表,您可以/应该使用数组。有关所选项目/对象的信息应存储在您的范围模型中(示例如下)。
如果我是对的,我如何预先选择复选框?
将所选选项/复选框的 ID 保存在您的模型上,然后让 ng-model
完成剩下的工作。
我是否需要 ng-click 才能调用自定义函数来存储所选内容 另一个数组中的对象?
不,你不需要它,ng-model
就足够了。
复选框中是否需要 ng-model?又是为了什么?
是的,你需要它。 ng-model
负责将选定的选项存储在您的模型上并自动进行(“预”)选择。
jsfiddle http://jsfiddle.net/bmleite/PQvQ2/
【讨论】:
感谢您的回答。但是我想将洞对象存储在像 selection.objects 而不是 selection.ids 这样的东西中怎么样?还有可能吗? 您仍然可以这样做,在这种情况下,只关注selections.ids
上的更改并基于此创建selection.objects
似乎更容易。示例:jsfiddle.net/bmleite/PQvQ2/1
对此的简化 - 有时更简单更好jsfiddle.net/PQvQ2/82 或在一个对象内jsfiddle.net/PQvQ2/83
是否可以显示另一个仅包含选定对象的 ng-repeat?
有什么简单的方法可以切换所有的复选框吗?以上是关于AngularJS 复选框 ng-repeat 和选定对象?的主要内容,如果未能解决你的问题,请参考以下文章
在angularjs中选中checkall和checkbox时,推送并拼接成数组
AngularJS ng Repeat - 使用复选框按单个对象属性筛选列表
ng-repeat 内的 ng-repeat 和每个项目的 td - AngularJS