2014-11-23 6 views
0
<select ng-model="sortOrder"> 
    <option value="country">Country (A-Z)</option> 
    <option value="-country">Country (Z-A)</option> 
</select> 

контроллер:Как установить начальное значение для опции выбора ng-модели?

$scope.sortOrder = ['-country', 'name']; 

Я его настроить что-то вроде этого. Он работает иначе, но опция выбора по умолчанию просто пуста. Я хотел бы, чтобы первый вариант был выбран по умолчанию или даже какой-то текст там .. в основном ничего, кроме пустого выпадающего списка. Как я могу это сделать?

+2

На контроллере: '$ scope.sortOrder =«country'' –

+0

Yea массив не является допустимым вариантом модели – tommybananas

+0

и это исправило это! Спасибо! @JoaoLeal – Pauli

ответ

0

Вы должны использовать ng-options

<select ng-model="selectedItem" ng-options=" item.name for item in items"></select> 

теперь установить параметр по умолчанию при создании списка элементов или если вы получаете список элементов динамически, чем вы можете присвоить первый элемент в качестве элемента по умолчанию такого

$scope.items = [{'name': 'Select Item'}, 
         {'name' : 'Google Calendar'}, 
         {'name' : 'Jira'}, 
         {'name' : 'Zendesk'}]; 

//This will set the default item as selected. 
$scope.selectedItem = $scope.items[0]; 

Дайте мне знать, если все еще не ясно.

+0

Мне нужно назначить текст (разные строки) и другое значение для каждого текста. Таким образом, я могу назначать разные значения только «name», правильно? @CrazyGeek – Pauli

+0

Да, вы можете добавить больше атрибутов в каждый элемент, чтобы иметь доступ к элементу item.value и еще одна вещь, если вы хотите назначить некоторые пользовательские атрибуты, такие как классы CSS для каждого параметра, чем создать пользовательскую директиву. – CrazyGeek

+0

И как мне добавить дополнительные атрибуты? Мне понадобилось бы по крайней мере три или более для каждого предмета. Теперь это всего лишь одно значение для каждой другой строки. И когда я делаю for-loop, как мне получить доступ к другим атрибутам? Например, если это раскрывающееся меню, обычно есть хотя бы текст и значение для каждого элемента. @CrazyGeek – Pauli

0

Вы можете использовать "выбранный" атрибут для <option> на INIT:

<select ng-model="selecteditem"> 
<option ng-repeat="item in items" value="{{item}}" {{item===selecteditem ? 'selected' : ''}}></option> 
</select> 
Смежные вопросы