我试图弄清楚为什么ng-model不能使用ng-repeat。
有我的代码:
$scope.availableCountries = [];
APIUtility.getCountries().then(function(data){
$scope.availableCountries = data;
$scope.filters.country = "AZ";
});
<select id="eventprice" class="searchpage_select" ng-model="filters.country">
<option value="all">show all</option>
<option ng-repeat="countries in availableCountries" value="{{countries.country_iso}}" ng-class="{'element_selected' : filters.country == countries.country_iso}">{{countries.name}}</option>
</select>
其中:
availableCountries
是来自API调用的对象(格式良好,信任我)
$scope.filters
是一个包含大量过滤器(包括国家/地区)的对象
问题是,如果我在API调用之前或之后更改ng-model
,则select语句不会更新,我认为如果我在angular有时间执行他的{{1}之前更新范围},ng-repeat
停止工作,不会更新字段。
我添加了ng-model
来证明ng-class
具有正确的值(filters.country
语句在需要时返回true并在正确的位置添加类,因此ng-class
包含正确的价值)。
我不知道我是否足够清楚。谢谢大家的时间!
答案 0 :(得分:4)
在ng-options
字段上使用ng-repeat
代替option
。
<select id="eventprice"
class="searchpage_select"
ng-model="filters.country"
ng-options="country.country_iso as country.name for country in availableCountries">
<option value="all">show all</option>
</select>
答案 1 :(得分:0)
问题在于
$scope.filters.country = "AZ";
试试这个更新的jsfiddle
http://jsfiddle.net/HB7LU/15021/