我试图根据特定条件显示已选中或未选中的复选框。例如:
$scope.userRoles = {"grants" : [
"Permission",
"View",
"Update",
"Delete"
]}
在HTML部分,我添加了以下代码:
<div ng-repeat="p in userRoles">
<input type="checkbox" ng-model="p.grants.indexOf('Delete') != -1?true:false" ng-change="AddRemovePermission(p,'Delete')" />
</div>
如果我使用ng-checked而不是ng-model比它工作正常,但我不会得到2路绑定。我也知道我们不能在ng-model中使用上面的表达式。 任何人都可以帮助解决这个问题。唯一的条件是如果用户有授权而不是复选框应该被检查,否则,当点击复选框时,它应该相应地更改为选中或取消选中,并添加到userRoles对象中。也可以使用指令。
感谢。
答案 0 :(得分:1)
问题在于你的模特。您必须将boolean发送到后端,这可以是一个解决方案:
在视图中:
<div ng-repeat="role in userRoles.grants">
<input type="checkbox" ng-model="role.checked" />
</div>
在控制器中:
$scope.userRoles = {"grants" : [
{"permission": "Permission", checked: true },
{"permission": "View", checked: false },
{"permission": "Update", checked: true },
{"permission": "Delete", checked: true }
]}