1
我想根據之前選擇的用戶權限重新填充一組複選框。AngularJS顯示元素如果在陣列中
我創建了一個權限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?感謝您的任何建議。
真棒,謝謝@merlin!不知道indexOf(),我還是JavaScript和AngularJS的新手。感謝幫助! –
@MitchGlenn如果你想支持舊的瀏覽器,請看看'Array.prototype.indexOf']的兼容性表格(http://kangax.github.io/compat-table/es5/)。 – merlin