ngModel覆盖选择>选项元素

时间:2015-09-05 15:02:11

标签: javascript angularjs

我有一个ng-repeat迭代遍历国家/地区代码和国家/地区代码的对象。我正在使用ng-selected预选美国(840)工作正常。但是,当我将ng-model (signup.user [“country_code”])引入包含我想要将选择绑定到的对象的select元素时,ng-select似乎被覆盖了signup.user [“country_code”]属性,默认为空。

        <select ng-model='signup.user["country_code"]'>
        <option ng-repeat="country in signup.country" ng-selected='country["country-code"]=="840"' ng-value='{{country["country-code"]}}'>
            {{country["name"]}}
        </option>
        </select>

所以只是为了清除以下版本在预选中成功但由于缺少绑定而没有好处,上面的版本确实绑定得很好但是ng-selected被覆盖了。

        <select>
        <option ng-repeat="country in signup.country" ng-selected='country["country-code"]=="840"' ng-value='{{country["country-code"]}}'>
            {{country["name"]}}
        </option>
        </select>

以下是我的控制器的片段,但我怀疑它对解决这个问题有用。

   signup.user = {};

   countryCodes.success(function(data) { 
     signup.country = data;
   });

1 个答案:

答案 0 :(得分:1)

因此,最初只需在控制器中设置国家/地区代码并使用ngModel。您还应该使用ngOptions指令而不是ngRepeat:

signup.user = {country_code: 840};

HTML:

<select ng-model="signup.user.country_code" 
        ng-options="country['country-code'] as country.name for country in signup.country">
</select>