如何在 Angularjs 中停止 ng-option 重复重复

How to stop ng-option duplication repeat in Angularjs

Angular JS Select 过滤器

我创建了一个搜索模块,它能够使用输入类型的文本进行搜索。现在我想在表单中添加 select 选项来搜索过滤器

这是 Plunker:http://embed.plnkr.co/yPJADtUDcgU720dx8ChJ/preview

您可以从 json 中提取类别,然后删除重复项:

//Filter all the categories, return an array of duplicated categories
var allCategories = json.modules.map(function(item) {
  return item.category;
});

//Remove the duplication from the first array
var filteredCategories = [];
allCategories.forEach(function(item) {
  if (filteredCategories.indexOf(item) < 0) {
    filteredCategories.push(item);
  }
});

//Assign the filtered array to scope
$scope.categories = filteredCategories;

也更改html:

<select ng-model="search.category" ng-options="category for category in categories"></select>

工作 plunker:http://plnkr.co/edit/Z6IUMTzePO7UoWoGuUfP?p=preview

只需像这样使用 ng-model="search":

<select ng-model="search" ng-options="module.category for module in ocw.modules"></select>

Link 演示:http://plnkr.co/edit/U0DudD80VIf0ExKh5ixO?p=preview