2016-02-25 3 views
0

У меня проблема с select tag и ngmodel. Значение переменной в модели не представлено в параметрах в раскрывающемся списке.Проблема с выбором и NgModel с моделью

Вот код:

<select ng-model="number"> 
    <option values="5">5</option> 
    <option values="10">10</option> 
    <option values="20">20</option> 
    <option values="25">25</option> 
</select> 

Где number определен в качестве контроллера 20.

После компиляции, следующий HTML-добавляется:

<option value="? undefined:undefined ?"></option> 

Примечание:

Я также представил number в формате HTML view, и у него нет проблем с отображением номера в выражении {{number}} - он отображается корректно.

Вот plnkr:

http://plnkr.co/edit/IXfwByE5ZrA4y7z0y6mh?p=preview

+1

Что вы пытаетесь достичь? Вам нужен дополнительный параметр, который отображает значение 'number'? –

+0

У вас есть '$ scope.number = '20';' в контроллере? [plunker] (http://plnkr.co/edit/abpMtEFKTrU3f7MzJvrv?p=preview) – klskl

+0

@ LJ.Wizard точно, я хочу, чтобы выбранный вариант (тот, который был удален по умолчанию), был значением $ scope.number – uksz

ответ

1

Вы можете попробовать этот путь

<select name="mydata" ng-model="number" 
    ng-options="value for value in [5,10,20,25]"> 
</select> 

в контроллере

$scope.number = 20; 
+0

Он работает так. Вы знаете, почему это не работает, если я не использую ng-options? – uksz

+0

Я думаю, потому что значение параметра может принимать только строку значений, поэтому если вы поместите $ scope.number = '20'; то вы html будете работать. в противном случае вам нужно использовать ng-options –

0

Вы $ scope.number = 5. Вы должны иметь

$scope.number = '5' // a string. Change 5 to '5' 
0
$scope.number = 5+""; 

Добавить это заявление в контроллере вместо $ scope.number = 5, так как значение для опции строка

1

Если viewValue из ngModel не соответствует ни одному из options, то элемент управления автоматически добавит опцию «unknown», после чего удалит, когда рассогласование будет разрешено.

документация here

Обычно, угловой сделает выбранный вариант, если значение модели совпадает со значением одного из вариантов.

10 имеет значение 10 и строку типа данных, где, поскольку ваш $ scope.number = 10 делает его значением 10 типа номера.

Так что значение модели несовместимо.

Попробуйте $ scope.number = '10' в вашем контроллере, и он будет работать.

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