如何从checkboxlist中返回所选项目?

时间:2014-08-04 03:27:29

标签: angularjs checkbox

我正在尝试返回我在angular js app中选择的项目。该应用程序显示了一些来自json文件的工具:

{"facility": [
    {
        "facilityItem": {
            "value": "Public_telephone",
            "code": "Public_telephone"
        }
    },
    {
        "facilityItem": {
            "value": "Public_toilet",
            "code": "Public_toilet"
        }
    }
]
}

在角度js页面中,我列出了这些项目:

<div ng-controller="MainCtrl">
    <div ng-repeat="facility in items">
          <input type="checkbox"/>
          {{facility.facilityItem.code}} &nbsp;
    </div>
</div>

问题是我如何创建一个对象,说是selectedItems,其中包含在此列表中检查的所有设施项目?

plnkr参考:http://plnkr.co/edit/rfzCBi?p=preview

1 个答案:

答案 0 :(得分:1)

输入框必须绑定到带有ng-model的角度模型:

<div ng-controller="MainCtrl">
    <div ng-repeat="facility in items">
          <input type="checkbox" ng-model="facility.facilityItem.selected"/>
          {{facility.facilityItem.code}} &nbsp;
    </div>
</div>

一旦你这样做,&#34;选择&#34;一旦选定,应定义每个facilityItem中的属性。

使用其他模式的替代方式

将其添加到控制器以创建新模型:

$scope.facilitySelected = [];

然后更改你的html以使用新模型;请注意$ index是视图相关的,因此模型和视图必须处于相同的顺序(我不鼓励对齐的数组)。

<div ng-controller="MainCtrl">
    <div ng-repeat="facility in items">
          <input type="checkbox" ng-model="facilitySelected[$index]"/> 
          {{facility.facilityItem.code}} &nbsp; {{facilitySelected[$index] && "selected" || "" }}
    </div>

</div>