Я пытаюсь показать флажки, отмеченные или снятые в зависимости от определенного условия. например:
$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, он работает нормально, но я не получу двухстороннюю привязку с этим. Также я знаю, что мы не можем использовать выражения, подобные приведенным выше, в ng-модели. Кто-нибудь может помочь в том, как это можно сделать. Единственным условием является то, что если у пользователя есть гранты, этот флажок не должен быть отмечен, иначе не следует, а при щелчке по флажку он должен быть изменен на отмеченный или снятый соответственно и добавлен в объект userRoles. Также нельзя использовать директиву.
Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема в вашей модели. Вы должны отправить логическое значение в бэкэнд, это может быть решением:
С учетом:
<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 }
]}
для флажка вам нужно ng-change с ng-model, тогда он будет работать как двусторонняя привязка