2015-07-29 4 views
0

У меня есть массив объектов, например:нг-варианты с AngularJS

[Object {ID = "121", NAME = "Planes"}, Object {ID = "212", имя =» Автобусы "}, {Object ID =" 210" , NAME = "Автомобили"}, ....]

Я хочу, чтобы это появится в отборное, такие как:

<select....> 
<option value="121"...>Planes</option> 
<option value="212"...>Buses</option> 
<option value="210"...>Cars</option> 
</select> 

Но если Я использую следующий код:

<select.... ng-options="category.id as category.name for category in categories" ..... 

я получаю следующие (значения неверны):

<select....> 
<option value="1"...>Planes</option> 
<option value="2"...>Buses</option> 
<option value="3"...>Cars</option> 
</select> 

Как я могу решить эту проблему?

Благодаря

ответ

2

Угловые используют числовые значения для значений опций в выбираешь, но вы можете следить за ваше выберите значение, используя нг-модель.

Вы можете попробовать (в зависимости от Угловой версии) с помощью track by, чтобы получить нужное значение. track by category.id в вашем случае, возможно.

Проверьте также this question/answer.

EDIT: this вопрос практически такой же. Кто-то отправил скрипку для вас ниже, так что я не буду делать это сейчас ..

1

Используйте след опция внутри нг-опций директивы

<select ng-options="category as category.name for category in categories track by category.id" ng-model="category"></select> 

Я сделал fiddle для вас

+0

Спасибо, это сработало отлично. Вместо того, чтобы «category.id as category.name ...» просто изменил его на «category as category.name ...», и он сработал. Спасибо. – Martin

0

Значения в отображаемом <select> могут быть неправильными, но это не имеет значения, поскольку значение ng-модели будет идентификатором выбранной категории.

https://jsfiddle.net/prappjt3/2/

+0

Спасибо, это очень полезно и помогло мне понять. Я вижу доступ к правильному ID, который у меня есть с угловыми с вашей скрипкой. Одна из проблем, которые у меня есть с этой реализацией, хотя (и я уверен, что есть решение), заключается в том, что этот выбор является частью обычной html-формы, после чего отправляется неверный идентификатор. – Martin

+0

Правильно. Но почему вы используете «регулярную форму представления» при работе с угловыми? Знаете ли вы, что «угловая форма отправки» используется ng-model и ng-submit? Это стандартный способ достижения этой функции. см .: http://jsfiddle.net/jergush/m1xkezk1/ –

Смежные вопросы