我正在尝试根据之前选择的用户权限重新填充一组复选框。
我创建了一个权限ID的数组,并希望将输入元素与id的数组进行比较,如果匹配则显示复选框,否则显示未选中的复选框。
这就是我创建$scope.assigned
数组的方式:
$scope.user.$promise.then(function(result) {
$scope.user = result;
$scope.assigned = [];
angular.forEach($scope.user.permissions, function(value, key) {
this.push(value.id);
}, $scope.assigned);
console.log($scope.assigned);
当$scope.assigned
被记录到控制台时,我留下了一个表示["2", "3", "4"]
的数组,代表以前选择的权限ID。现在我想将它们与permissions.id
观点:
<h4>Manage Permissions</h4>
<div class="form-group" ng-repeat="permission in permissions">
<label>
<input ng-if="permission.id == assigned" type="checkbox" ng-checked="true" checklist-model="user.permissions" checklist-value="permission.id" class="checkbox-inline">
{{ permission.display_name }}
</label>
</div>
<button class="btn btn-success" type="submit">Save</button>
我认为我可以做ng-if="permission.id == assigned"
这样的事情,但这不起作用。我需要一种方法来检查permission.id是否匹配指定的内容。
我之前在PHP中这样做过:if(in_array($permission['id'], $assigned))
如何在AngularJS中完成此操作?谢谢你的建议。
答案 0 :(得分:0)
使用indexOf
:
ng-if="assigned.indexOf(permission.id) != -1"