Я создал поле выбора angularJS, которое будет фильтровать результаты в таблице на основе выбранного значения в поле выбора.
Теперь поле выбора создается с использованием объекта 'user['location']', который имеет местоположения в качестве ключей. Кроме того, я беру местоположение пользователя по умолчанию «${city}», как только страница загружается, передаю его в поле выбора и соответствующим образом фильтрую результаты в таблице.
Если текущее местоположение пользователя не соответствует ни одному из параметров в моем поле выбора, фильтр не должен применяться!
Например, если местоположение пользователя — «Лондон», поскольку в моем объекте нет ничего похожего на «Лондон», он должен выбрать первый вариант — «Выбрать город».
Но в настоящее время он создает пустую строку, например <option value= "? string:London ?"></option>
выше, и выбирает ее!
Как, исправить?
Вот мой код:
HTML:
<select class="form-control" ng-model="user.loc" ng-init="user.loc = '${city}'">
<option value="" ng-selected="!checkKey(user.loc)">Select City</option>
<option value="{{key}}" ng-selected="key == user.loc" ng-repeat="(key, value) in user['location']">{{key}}</option>
</select>
JS:
$scope.user['location'] = {Sydney: 5, Hong Kong : 7, NYC : 3, Toronto: 1};
$scope.checkKey = function(loc) {
if(loc in $scope.user['location']){
return true;
} else {
return false;
}
};