【问题标题】:AngularJS checkbox ng-repeat and selected objects?AngularJS 复选框 ng-repeat 和选定对象?
【发布时间】: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 吗?为什么?

什么是少痛苦的正确方法?

【问题讨论】:

    标签: javascript angularjs checkbox repeat


    【解决方案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?
    • 有什么简单的方法可以切换所有的复选框吗?