我创建了一个 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;
}
};