我有一份书籍清单,每本书都有ID,名称和零售商列表。我想要做的是加载一个页面,我可以使用复选框来选择/取消选择零售商。首次加载图书编辑页面时,会显示零售商的完整列表(每个都有一个复选框),然后检查那些作为图书现有零售商的零售商。
app.js
allRetailers = $resource('/api/retailers');
currentRetailers = $resource('/api/books/:bookId/retailers')
partial.html
<span ng-repeat="retailer in allRetailers">
<input type='checkbox' value='{{retailer .id}}' ng-model="book.isExistingRetailer(retailer)" >{{retailer .name}}<br/>
</span>
获取零售商的完整清单并仅保存已检查的零售商不是问题。我遇到的问题是预先填充现有/当前零售商的复选框。
我看过How do I bind to list of checkbox values with AngularJS?,但这不是我需要的。在此先感谢您的回复。
答案 0 :(得分:3)
您应该使用ng-checked
指令,如
<input type='checkbox' value='{{retailer.id}}' ng-checked="book.isExistingRetailer(retailer)" ng-model="selected" ng-click="selectRetailer(book, retailer,selected)>{{retailer .name}}<br/>
这意味着您需要通过实施在ng-click上定义的方法selectRetailer
来手动选择已检查的项目,并传递图书和零售商的值以及当前选定的值(true或false)。