ng-model不使用ng-repeat

时间:2015-07-06 14:10:15

标签: angularjs

我试图弄清楚为什么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包含正确的价值)。

我不知道我是否足够清楚。谢谢大家的时间!

2 个答案:

答案 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/