2013-09-12 3 views
0

интерполяция синтаксиса фигурных скобок используется для привязки данных из модели для просмотра в angularjs.Population dropdown с использованием фигурных скобок + angularjs

Обычно мы отображаем текст, используя его.

Можно ли заполнить выпадающий список с помощью синтаксиса {{}}?

+4

Почему бы не использовать 'нг-options'? – AlwaysALearner

+0

Но наряду с ng-вариантами мы должны использовать ng-model. И я ищу технику, которая может позволить нам заполнять данные без ng-модели –

ответ

5
<select> 
    <option ng-repeat="item in items" value="item.value">{{item.title}}</option> 
</select> 
+0

Отлично! Большое спасибо. Теперь мне нужно немного вашего руководства. Теперь скажите, что у меня есть несколько dropdownlists, и я хочу отправить выбор этих dropdownlists в массив на сервер. Как мы делаем это. https://groups.google.com/forum/#!searchin/angular/tushar$20sharma/angular/2R7_pCC7E1o/vRsYTfNhXYgJ –

+0

Для чего предназначена эта ссылка? – AlwaysALearner

+0

Чтобы отправить выбор, вам нужно будет использовать 'ng-model'. – AlwaysALearner

1

Вы, безусловно, можете заполнить выпадающий список, используя фигурные скобки в угловом, но он не будет иметь ожидаемого эффекта.
Если вы хотите иметь привязку данных в своем поле выбора, вы должны использовать select directive, который записывает теги option аналогичным образом, что и директива ng-repeat.
Вот пример:

JS:

$scope.selectables = [ 
    { label: 'A', value: 1}, 
    { label:'B', value: 2}, 
    { label: 'C', value: 3} 
]; 

// this is the model that's used for the data binding in the select directive 
// the default selected item 
$scope.selectedItem = $scope.selectables[0]; 

HTML:

<select 
    ng-model="selectedItem" 
    ng-options="o.label for o in selectables"> 
</select> 
<p>Selected item value: {{selectedItem.value}}</p> 

Вот демо, чтобы очистить вещи: http://jsfiddle.net/gion_13/TU6tp/

+0

Невозможно ли без ng-модели? Coz в моей ситуации с этой техникой мне придется поставить две ng-модели в директиве select, которая создала бы конфликт –

+0

Код: http: //plnkr.co/edit/oy073r? P = preview –

+0

Посмотрите обновленный issue: http://stackoverflow.com/questions/18780840/post-a-list-of-selections-in-an-array-to-server-using-ng-model?noredirect1_comment27692672_18780840 –

0

Ну, вы можете заполнить DROPDOWNLIST таким образом:

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

Выбранный элемент будет сохранен в $scope.myItem.

Проверить эту страница: http://docs.angularjs.org/api/ng.directive:select

Надеется, что это помогает.

+0

Есть ли все равно, чтобы заполнить его без ng-модели? Потому что в моем приложении у меня проблема. двухсторонняя привязка ng-модели создает проблемы. –

+0

код можно найти на следующем plunkr: http: //plnkr.co/edit/oy073r? P = preview –

+0

Обратите внимание, что ng-options создает свою собственную область при привязке выделения к модели. Трюк, который я использую, чтобы обойти это, - создать объект «ui» в области управления '$ scope.ui = {};' и привязать к нему 'ng-model =" ui.myItem "'. –

0

Вы можете сделать что-то вроде этого:

<select ng-model="searchDropdown" ng-class="{active: isDropdownActive}"> 
      <option ng-repeat="item in data.results" value="{{ item[settings.filterOptions[0].value] }}" >{{ item[settings.filterOptions[0].value] }}</option> 
</select> 
+0

Можем ли мы что-то использовать без использования ng-модели? Вернее, мы можем иметь такую ​​структуру, которая может помочь нам в случае, когда мы получаем другой тип данных, и мы отправляем другой тип данных. Модель Becoz ng привязывает тег двумя способами, ограничивая нас отправкой одних и тех же данных двумя способами –

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