Мне трудно понять, как именно отфильтровать результаты в моем приложении.
У меня есть массив gameList
с кучей игровых объектов.Для наших целей давайте просто скажем, что я хочу искать только по game.name
.Если у меня есть игра с именем Apple
, игра с именем Orange
и одна с именем Oddball
.Прямо сейчас при вводе a
в строку поиска все 3 записи будут отображаться, поскольку буква a
содержится в Orange
и Oddball
.Я хочу, чтобы отфильтровывались Orange
и Oddball
, поскольку они не начинаются с a
.Однако, если я наберу O
, я бы хотел, чтобы Apple
был отфильтрован, и тогда следующая буква в окне поиска (Or
или Od
) будет определять, что будет отфильтровано.
Iбыло трудно найти способ сделать это.Возможно, я просто не использую правильные условия поиска, когда ищу.Как сравнить мою переменную searchText
с game.name
с начала, а не со всей строкой ???
Вид / Код страницы:
<div ng-controller="SearchController" class="content">
<h2 id="pageTitle">{{pageTitle}}</h2>
<label>Search: <input placeholder="What are you looking for?" ng-model="searchText"></label>
<div ng-repeat="game in gameList | filter:searchText" class="gameDiv">
<h3>{{game.name}}</h3>
<p>{{game.numPlayers}}</p>
<p>{{game.duration}}</p>
<a ng-href="#!game-info/{{game.gameId}}">More Info</a>
</div>
</div>
Код контроллера:
rwagApp.controller("SearchController", ['$scope', '$http', function($scope, $http) {
$scope.pageTitle = "Search";
$scope.searchText = '';
$http.get("http://localhost/list?table=games").then(function (data) {
$scope.gameList = data.data.arr;
});
}]);