因此,問題的概述;我從api中檢索數據併爲它創建一個CRUD頁面。數據有一組用戶可以選擇的標籤。Angular ng通過ng選項重複多個選擇字段而不顯示已經選擇的數據
下面是代表我的問題的代碼示例。由用戶選擇的標籤由user.labels
關係表示,並且可以選擇的總可用標籤由user.parent.grandparent.labels
表示。
我可以同步選擇。我似乎無法弄清楚的是如何擺脫已經從任何其他後續選擇字段的選項列表中選擇的選項。
angular.module('app', [])
.controller('select', ['$scope', '$filter', '$location',
function($scope, $filter, $location) {
$scope.user = {
"parent": {
"grandparent": {
"labels": [{
"id": 28,
"name": "Label 1",
}, {
"id": 17,
"name": "Label 2",
}, {
"id": 39,
"name": "Label 3",
}, {
"id": 77,
"name": "Label 4"
}, {
"id": 100,
"name": "Label 5"
}]
}
},
"labels": [{
"id": 28,
"name": "Label 1",
"meta": {
"score": 3
}
}, {
"id": 17,
"name": "Label 2",
"meta": {
"score": 5
}
}]
};
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="select">
<div ng-repeat="label in user.labels track by $index">
<div class="form-field">
<span>Label</span>
<select ng-model="user.labels[$index]" ng-options="department.name for department
in user.parent.grandparent.labels track by department.id">
</select>
</div>
<div>
<span>Score</span>
<select ng-model="label.meta.score">
<option value="1">1 (lowest)</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5 (highest)</option>
</select>
</div>
</div>
<button ng-click="user.labels.push({})">Add Label</button>
</div>
你看着使用NG選項過濾器等計算器的問題嗎?像這樣:https://stackoverflow.com/questions/16644402/angular-use-filter-on-ng-options-to-change-the-value-顯示 – rcheuk 2015-02-10 16:30:45