#angularjs #typescript
#angularjs #typescript
Вопрос:
У меня есть повторяющиеся элементы в списке категорий, но я должен отображать только неповторяющиеся элементы с помощью ng-repeat. Как отфильтровать этот список, чтобы отображать только неповторяющиеся элементы, у меня есть пример кода.
Смотрите мое мнение ниже
<tr ng-repeat="category in cc.categoriesList "
ng-click="cc.selectCatForNewTask(category.cid)"
ng-class="{selected: cc.getCtgRowClass(category.cid)}">
<td>
{{category.categoryName}}
</td>
</tr>
Комментарии:
1. <tr ng-repeat=»категория в cc.categoriesList » ng-click=»cc.selectCatForNewTask(category.cid)» ng-class=»{выбранный: cc.getCtgRowClass(category.cid)}»> <td> {{category.CategoryName}} </td> </tr>
2. Концептуально, я чувствовал бы себя комфортно, просто используя набор для фильтрации дубликатов, а затем просто используя
ng-repeat
этот набор.
Ответ №1:
Попробуйте это:
<tr ng-repeat="category in cc.categoriesList | unique:category.somefield " ng-click="cc.selectCatForNewTask(category.cid)" ng-class="{selected: cc.getCtgRowClass(category.cid)}">
<td> {{category.categoryName}} </td>
</tr>
Вам нужно будет установить некоторые зависимости:
1. В вашем терминале перейдите в свой проект и запустите для установки angular-ui-utils unique:
bower install angular-ui-utils#bower-unique
2. Требуется unique.js файл, добавив это в свой проект под вашим скриптом angular:
<!-- angular script -->
<script type="text/javascript" src="bower_components/angular/angular.js"></script>
<!-- unique script -->
<script type="text/javascript" src="bower_components/angular-ui-utils/unique.js"></script>
3. Добавьте unique в качестве модуля в ваше приложение:
angular.module('myApp', ['ui.unique'])
исходный код доступен здесь: уникальный фильтр AngularUI