Я пытаюсь реализовать фильтрацию объекта JS Map (массив, проиндексированный идентификатором) вместо обычного массива js в angularJS.AngularJS - фильтрация Javascript Map
Для иллюстрации ниже приведена небольшая модификация примера фильтрации, представленная в AngularJS docs.
http://plnkr.co/edit/bNzePyuAAmP6Nl6hj5bI?p=preview
Я преобразовал входной массив (друзья) на объект JSON с каждым начальным элементом массива отображенного в качестве отдельного элемента шпонки. Эта модификация может быть понята ниже:
начальных (как показан на AngularJS документов):
friends = [{name:'John', phone:'555-1276'},
{name:'Mary', phone:'800-BIG-MARY'},
{name:'Mike', phone:'555-4321'},
{name:'Adam', phone:'555-5678'},
{name:'Julie', phone:'555-8765'}]
Modified:
friends = {1:{name:'John', phone:'555-1276'},
2:{name:'Mary', phone:'800-BIG-MARY'},
3:{name:'Mike', phone:'555-4321'},
4:{name:'Adam', phone:'555-5678'},
5:{name:'Julie', phone:'555-8765'}}
Может кто-то обеспечить способ фильтрации такого входа как часть ng-repeat выражение директивного фильтра. Я понимаю, что «друзья» больше не являются массивом, а объектом, но поскольку директива ng-repeat работает над этим объектом, возможно, есть способ его фильтровать?
Спасибо.
Почему вы изменяете оригинал? С ним гораздо проще работать, чем с измененной версией. –
@TravisJ: Я понимаю, что работать с исходной версией проще, учитывая сервис фильтрации. Однако причиной того, что я создаю карту вместо массива, является простота доступа к каждому из объектов. Например, доступ к элементу с именем «Джон» в массиве друзей может быть намного проще на карте, где все, что вам нужно сделать, это сказать друзьям [1]. Мне нужна такая возможность легкого доступа в моем приложении. – Angad
Я не согласен, что легче получить доступ к элементам, когда это карта. Если это массив, вы можете использовать этот точный синтаксис, за исключением того, что он основан на нулевом значении. –