好的,我知道这已经被覆盖了,我已经尝试了所有这些结果,但无法让它们在我的情况下工作:
我正在尝试将角度 ui-select 与多个数据源一起使用 - 一个用于默认选择,另一个用于可选选项,但不应发生重复
例如:
对于 ng-model 绑定,我在 $scope 上使用了一个空数组,该数组填充了与来自名为“categories”的 API 端点的帖子相关联的类别。
对于默认选择的选项,我正在获取已经与 post 对象关联的类别 - 这来自另一个 api 端点。
我的控制器
app.controller('MainCtrl', function($scope, $http) {
$scope.selectedTerms = [];
$http.get('currentTerms.json').then(function(currentTermsObj){
var currentTerms = currentTermsObj.data;
currentTerms.map(function(currentTerm){
var currentPostTerm = currentTerm;
$scope.selectedTerms.push(currentPostTerm);
});
});
$http.get('possibleTerms.json').then(function(possibleTermsObj){
$scope.possibleTerms = possibleTermsObj.data;
});
我的 HTML:
<ui-select
multiple
ng-model="selectedTerms">
<ui-select-match placeholder="Select Category...">{{$item.name}}</ui-select-match>
<ui-select-choices
repeat="term in possibleTerms">
{{term.name}}
</ui-select-choices>
</ui-select>
问题是,无论我做什么,总是有重复和角度怪胎,并出现以下错误:
“错误:[ngRepeat:dupes] 不允许在转发器中重复。使用 'track by' 表达式指定唯一键。”
哦,我试过使用“track by $index”,但没有运气。
当它们已经来自另一个数据源时,如何使用两个不同的数据源并让 ui-select 从选择下拉列表中删除重复项?
Plnkr 演示我的问题:http ://plnkr.co/edit/WDthr7?p=preview