Просто интересно, можете ли вы отфильтровать существующий массив с другим массивом фильтра.
Итак, скажем, наш исходный json был:
[
{
"bookname": "harryporter",
"year": "2000",
"author":"J. K. Rowling"
},
{
"bookname": "Sleepless",
"year": "2003",
"author":"Connie Ann Michael"
},
{
"bookname": "No man's land",
"year": "1993"
"author":"Harold Pinter"
}
];
Массив фильтров:
[
"year":"1993"
"bookname":"No man"
]
Также есть способ динамически добавлять элементы в массив при редактировании ввода, возможно, вводить текст?
Например:
Ввод
<div>
<input type="text" ng-model={{ filterArray.insert("bookname":"value") }}>Book Name
</div>
< Сильный > Фильтр
<div ng-repeat="books in originalJson | filter: filterArray">
{{books.author}}
</div>
Надеюсь, я достаточно объяснил свой вопрос, ура
1 ответ
Если вы хотите фильтровать по нескольким значениям, вы можете передать объект-фильтр.
Каждый ключ соответствует имени поля, и каждое значение фильтрует элементы на основе соответствующего ключа.
Book name: <input type="search" ng-model="filterObj.bookname" />
Year: <input type="search" ng-model="filterObj.year" />
<div ng-repeat="book in books | filter:filterObj">...</div>
См. Также эту короткую демонстрацию .
Если вы хотите разрешить пользователю динамически указывать поле для фильтрации, вы тоже можете это сделать (хотя это не очень распространенная практика):
Filter by:
<input type="search" ng-model="dynamicField"
placeholder="Field to filter by" />
<input type="search" ng-model="filterObj[dynamicField]"
placeholder="Value to filter by" />
<div ng-repeat="book in books | filter:filterObj">...</div>
config.json
также инициализировать filterObj? Вы изучали мою демонстрацию?
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
where
.