2015-09-05 2 views
2

У меня есть повторение ng-повторения через объект названий стран и кодов стран. Я использую ng-selected для предварительного выбора США (840), который отлично работает. Однако, когда я ввожу ng-модель (signup.user ["country_code"]) в элемент выбора, содержащий объект, для которого я хочу привязать выделение, ng-select, по-видимому, переопределяется signup.user [ Свойство "country_code"], которое по умолчанию пусто.ngModel overriding ngSelected on select> option element

 <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> 

Так что для оформления ниже версии успешно предварительного отбора, но не хорошо из-за отсутствия привязки, выше версия имеет привязку только штраф, но нг выбранного переопределяется.

 <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

Так что просто введите код страны изначально в контроллер и используйте 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> 
+0

Perfect. Работал. Благодаря! –