在角度1.2中使用ngmodel中的表达式

时间:2018-03-20 09:27:50

标签: javascript html angularjs

我试图根据特定条件显示已选中或未选中的复选框。例如:

$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对象中。也可以使用指令。

感谢。

1 个答案:

答案 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 }
]}