因此,问题的概述;我从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