Как остановить повторение ng-option в Angularjs

Выбор Angular JS для фильтрации

У меня есть модуль поиска, который может выполнять поиск с помощью текста типа ввода. Теперь я хочу добавить параметр выбора в форму для фильтрации поиска.

Вот плункер: http://embed.plnkr.co/yPJADtUDcgU720dx8ChJ/preview


person Yes Webs    schedule 23.03.2015    source источник
comment
Данные вашего поля выбора ng неверны, попробуйте поместить {{search.category}} в свой html и посмотрите этот вывод.   -  person Yasser Shaikh    schedule 23.03.2015


Ответы (2)


Вы можете извлечь категории из 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>

Рабочий плункер: http://plnkr.co/edit/Z6IUMTzePO7UoWoGuUfP?p=preview

person Huy Hoang Pham    schedule 23.03.2015
comment
Как заполнить одни и те же элементы списка категорий в параметрах флажка.. чтобы я мог выбрать более одного за раз - person Yes Webs; 23.03.2015
comment
Флажок немного сложный, у меня нет чистого решения. Вы можете попробовать задать другой вопрос, чтобы получить все ответы. - person Huy Hoang Pham; 23.03.2015

Просто используйте ng-model="search" следующим образом:

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

Демо-ссылка: http://plnkr.co/edit/U0DudD80VIf0ExKh5ixO?p=preview

person Tai Huynh    schedule 23.03.2015