2015-02-27 1 views
0

Я за жизнь меня не может понять, как установить как labal и значение отборного, используя массивСвязывание выбора с нг-вариантами с использованием массива меток и значение

У меня есть массив стран

$scope.countries = [ 
    {abbr:"US", name:"United States"}, 
    {abbr:"CA", name:"Canada"},...... 
] 

Я хочу, чтобы выбрать для создания как таковой

<select> 
    <option value="US">United States</option> 
    <option value="CA">Canada</option> 
</select> 

Однако ближе всего я был в состоянии достигнуть,

<select> 
    <option value="1">United States</option> 
    <option value="2">Canada</option> 
</select> 

Я добился того, что с использованием

<select class="form-control" ng-options="country.Name for country in countries" ng-model="selectedCountry"> 

Как присвоить метку и значение, используя нг-варианты?

+1

https://docs.angularjs.org/api/ng/directive/ngOptions. Угловые документы говорят вам, как это сделать. – ribsies

+0

Об этом уже ответил http://stackoverflow.com/questions/12139152/how-to-set-value-property-in-angularjs-ng-options – gerl

ответ

1

Без тестирования я думаю, что это просто

ng-options="country.abbr as country.name for country in countries" 
+0

Это то, что я думал, но вместо этого он производит нумерованное значение от моей аббревиатуры значение – mrb398

+1

Ух ты немного суровый - http://jsfiddle.net/devitate/uaxv70kc/ - он действительно работает. – Dylan

+0

Простите, вы были правы. Видимо, я тоже был прав. Я смотрел на сгенерированный HTML, а не на то, что на самом деле хранилось в модели. Спасибо – mrb398

0

Для точной структуры, что вам нужно сделать ng-repeat через <option><option>ng-options никогда не установит значение, который вы хотите, он всегда будет установлен 0,1,2, 3 и т.д.

HTML

<select ng-model="selectedCountry"> 
    <option ng-repeat="country in countries" value="{{country.abbr}}" ng-bind="country.name"></option> 
</select> 

JSFiddle

Надеюсь, это может вам помочь, спасибо.

+0

@ пользователь1691808 если полезно, то по крайней мере сделайте .... –