Мне нужна помощь, чтобы понять, как я могу использовать фильтр AngularJS, чтобы показывать только те параметры, которые соответствуют моему состоянию.
У меня есть массив ниже.
var users = [
{'id':0, 'name':'John', 'roles':['Admin']},
{'id':1, 'name':'Alice', 'roles':['Admin', 'Tech']},
{'id':2, 'name':'Sam': 'roles':['Tech']}
]
Я отображаю всех пользователей в списке <select>
с кодом ниже. Но я только хочу показать пользователям, чья роль - «Технология». Здесь я рассмотрел несколько других ответов, но все они используют фильтр с объектом, я пытаюсь сделать это с массивом.
<select data-ng-options="item.id as item.name for item in users"></select>
Я пытался показать только опции с data-ng-if="item.roles.indexOf('Tech') > -1"
на теге <select>
, но это условие никогда не выполняется, поэтому раскрывающийся список вообще не отображается (что имеет смысл).
Я также пытался использовать data-ng-options="item.id as item.name for item in users | filter:{item.roles:'Tech'}"
с фильтром, но это не удается из-за ошибки разбора AngularJS.
Не уверен, как я могу фильтровать по значениям массива.