English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ранее было рассмотрено использование AngularJS, здесь просто напишем小程序, который реализует функции поиска, фильтрации и сортировки.
В этой программе можно узнать:
1 фильтры angularjs
2 Метод использования ng-repeat
3 Использование контроллеров
4 Привязка данных
Анализ программного обеспечения
Сначала, чтобы выполнить фильтрацию запроса, нужно использовать фильтр filter в AngularJS.
Прямо в конце выражения используется символ管道 |, и по следующему образцу可以达到 эффекта фильтрации:
{{ persons | filter:query }}
Использование фильтра filter позволяет выполнять операцию фильтрации, query - это строка, вводимая при фильтрации запроса.
Аналогично, использование orderBy позволяет реализовать функцию сортировки:
{{ persons | filter:query | orderBy:order }}
Верхний запрос и сортировка связаны с двумя переменными: query и order. Здесь можно использовать ng-model для привязки данных:
Search:<input ng-model="query"> Sort by:<select ng-model="order"> <option value="name">name</option> <option value="age">age</option> </select>
AngularJS - это фреймворк, основанный на DOM, поэтому не нужно реализовывать какие-либо слушатели или триггеры событий. При любом изменении в поле ввода query будет запущен двусторонний рендеринг поля ввода и отображения下方表达式!
В отличие от других фреймворков, основанных на добавлении к DOM строк через innerHTML узлов DOM, реализация AngularJS ускоряет отображение модели и视图. Кроме того, это уменьшает количество кода, необходимого для написания ненужных监听еров и триггеров, и действительно реализует эффект, подобный Spring~
Визуализация данных может быть реализована с помощью ng-repeat. Когда веб-страница достигает ng-repeat, для каждого элемента массива клонируется тег, который компилируется и анализируется.
<ul class="persons"> <li ng-repeat="person in persons | filter:query | orderBy:order"> {{person.name}} {{person.age}} </li> </ul>
Оставшаяся работа заключается в инициализации массива perons в script:
<div ng-controller="ctl"> ... </div> <script type="text/javascript"> function ctl($scope){ $scope.persons = [ {"name":"xingoo","age":25}, {"name":"zhangsan","age":18}, {"name":"lisi","age":20}, {"name":"wangwu","age":30} ]; $scope.order = "age"; } </script>
Код и результат
В конце добавьте все коды:
<!doctype html> <html ng-app> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script> </head> <body> <div ng-controller="ctl"> Search:<input ng-model="query"> Sort by:<select ng-model="order"> <option value="name">name</option> <option value="age">age</option> </select> <ul class="persons"> <li ng-repeat="person in persons | filter:query | orderBy:order"> {{person.name}} {{person.age}} </li> </ul> </div> <script type="text/javascript"> function ctl($scope){ $scope.persons = [ {"name":"xingoo","age":25}, {"name":"zhangsan","age":18}, {"name":"lisi","age":20}, {"name":"wangwu","age":30} ]; $scope.order = "age"; } </script> </body> </html>
Результат использования:
По умолчанию используется сортировка по age:
Выбирая, можно использовать сортировку по name
Когда вы вводите символы, они автоматически будут фильтровать некоторые опции
Вотcompiled информация о фильтрации и сортировке AngularJS, в будущем продолжим пополнять соответствующие материалы, спасибо всем за поддержку нашего сайта!
Заявление: содержание этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, материалы предоставлены пользователями Интернета в добровольном порядке, сайт не имеет права собственности, материалы не были отредактированы вручную, и сайт не несет ответственности за связанные с этим юридические обязательства. Если вы обнаружите спорное содержимое, пожалуйста, отправьте письмо по адресу notice#oldtoolbag.com (во время отправки письма замените # на @) для жалоб,并提供相关证据. При обнаружении фактов, сайт немедленно удаляет спорное содержимое.