【问题标题】:Bind checkbox or multi-select dropdown to array in AngularJS?将复选框或多选下拉列表绑定到AngularJS中的数组?
【发布时间】:2013-05-20 08:08:07
【问题描述】:

我是 AngularJS 的新手,因此对如何将复选框或多选下拉列表绑定到单独的列表感到困惑。

<body ng-controller="FooListCtrl">
  <span ng-repeat="foolist in foos">
    <select ng-model="selected" ng-options="foo for foo in foolist" multiple="">
    </select>
  </span>
</body>
'use strict';

function FooListCtrl($scope) {
    $scope.foos = {"Bar": [ "foo", "bar"]};
    $scope.selected = [];
}

FooListCtrl.$inject = ['$scope'];

运行代码:http://jsfiddle.net/gBcN2/

【问题讨论】:

    标签: javascript data-binding angularjs html-select html.checkbox


    【解决方案1】:

    如果我猜对了你想要的:

    1. 您没有ng-app 定义。
    2. 如果您使用 AngularJS 作为外部资源,则在 AngularJS 的 sn-ps 的 jsFiddle 上设置 No wrap - in &lt;head&gt; 加载模式。
    3. 模型selected 有它自己的“范围”,因为您使用ng-repeat。要明白我的意思,这是您的代码的固定版本: http://jsfiddle.net/gBcN2/2/

    第一个 {{selected}} 工作正常,但第二个是 ng-repeat 范围的“外部”。

    PS:
    如果您想像在示例中写的那样使用它,则不必使用ng-repeatquick fiddle of how I'd do it.

    编辑:
    对于复选框,它是这样的 - http://jsfiddle.net/qQg8u/2/

    【讨论】:

    • 太好了,感谢您的帮助。如果可能的话,您能否向我展示一下复选框示例的外观? :)
    • 谢谢,很好;但是是否有一个不编辑源 JSON(带有 checked: false 值)?
    • 我不太确定,但我认为必须有一个“存储”位置以某种方式检查复选框是否被选中(抱歉重言式:))。如果您不想更改 optionSource 的 JSON 内容,您可以使用其他变量,例如:jsfiddle.net/qQg8u/5 这样选项源将不受影响。
    • 仅供参考:有一个可以工作,它给了我一系列复选框:jsfiddle.net/C7eRd/1
    • 不错! :) 当然有很多选择如何在视觉上制作相同的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2013-03-25
    相关资源
    最近更新 更多