У меня есть базовая таблица, в которой я отображаю данные, извлеченные из базы данных через AngularJS. У меня также есть поле поиска, которое использует AngularJS для фильтрации данных:
<input ng-model="search" id="search" type="text" placeholder="Search" value="">
<div ng-controller="eventsController")>
<table>
<tr ng-repeat="event in events | filter:search">
<td><span ng-bind="event.title"></span></td>
<td><span ng-bind="event.date_start"></span></td>
</tr>
</table>
</div>
<script>
function EventsController($scope, $http) {
$http.get('/api/all-events').success(function(events) {
$scope.events = events;
});
}
</script>
Это отлично подходит для пользовательского поиска, но что, если я хочу запустить определенный фильтр при загрузке страницы, сохранив при этом функциональность поиска? Есть ли способ использовать AngularJS для автоматической фильтрации результатов на основе параметра URL (например, example.com?search=foo)? В идеале значение поля ввода также должно быть установлено равным параметру URL.
$routeParams
(docs.angularjs.org/ api / ngRoute / service / $ routeParams) или строку запроса (stackoverflow.com/questions/16964444/). Как только вы проверитеsearch
, просто установите$scope.search
в качестве этого значения, и все должно встать на свои места - person Ian   schedule 27.06.2014$location
в свой контроллер.EventsController($scope, $http, $location)
Сервис $ location анализирует URL-адрес в адресной строке браузера. Затем используйте$location.search()
. - person Alan Wells   schedule 27.06.2014