2016-07-22 3 views
0

В моем коде я перечислил некоторые записи пользователей. Там один столбец для изменения produced by, что столбец существует одно выпадающее меню. Мой ng-change работает нормально. после обновления страницы выпадающее меню, которое не было заполнено, было изменено в последний раз. Пожалуйста, проверьте мой код -Как выбрать динамическое раскрывающееся меню по умолчанию?

Удостоверение

<select name="repeatSelect" id="repeatSelect" ng-model="model_produced_by" style="width: 62px;" ng-change="change_produced_by(model_produced_by, order.Order.id)"> 
    <option value="">Select Produced By</option> 
    <option ng-repeat="option in produced_by.availableOptions" value="{{option.id}}" ng-selected="option.id == order.Order.assigned_to">{{option.name}}</option> 
</select> 

Выход -

<select ng-change="change_produced_by(model_produced_by, order.Order.id)" style="width: 62px;" ng-model="model_produced_by" id="repeatSelect" name="repeatSelect" class="ng-pristine ng-valid ng-empty ng-touched"> 
    <option value="">Select Produced By</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="1" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Outsourced</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="2" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">In-House</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="3" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Local Store/Printer</option> 
</select> 

Я хочу, чтобы выбрать значение, равное с option.id == order.Order.assigned_to Но мой код не работает. Также я использовал ng-init в теге select. Последняя опция отображается в каждом раскрывающемся списке. Пожалуйста, проверьте и скажите мне, где ошибка.

enter image description here

+0

В теге select вы используете ng-модель, в которой необходимо сохранить выбранное значение, и в каждом из выбранных вами параметров вы выбрали условие: ng-selected = "option.id == order.Order.assigned_to". Это похоже на несоответствие. –

ответ

1

Вы должны использовать просто ngOptions и ngModel:

<select name="repeatSelect" id="repeatSelect" style="width: 62px;" 
    ng-model="order.Order.assigned_to"   
    ng-change="change_produced_by(model_produced_by, order.Order.id)" 
    ng-options="option.id as option.name for option in produced_by.availableOptions"> 
    <option value="">Select Produced By</option> 
</select> 
+0

Хорошо работает Спасибо. :) – Chinmay235

-1

Я не знаю, угловатые JS, но я понимаю вашу проблему. Если вы можете каким-то образом выполнить эту операцию, вы избавитесь от своей проблемы. Вам необходимо произвести следующий ниспадающий HTML для выбранного варианта 2:

<select ng-change="change_produced_by(model_produced_by, order.Order.id)" style="width: 62px;" ng-model="model_produced_by" id="repeatSelect" name="repeatSelect" class="ng-pristine ng-valid ng-empty ng-touched"> 
    <option value="">Select Produced By</option> 
    <option value="1" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Outsourced</option> 
    <option ng-selected="true" value="2" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">In-House</option> 
    <option value="3" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Local Store/Printer</option> 
</select> 

Если вы можете генерировать HTML во время выполнения, как в вашем состоянии вы можете сделать это .... Вот пример, как я пишу код может defferent в угловое:

<select name="repeatSelect" id="repeatSelect" ng-model="model_produced_by" style="width: 62px;" ng-change="change_produced_by(model_produced_by, order.Order.id)"> 
    <option value="">Select Produced By</option> 
    <option ng-repeat="option in produced_by.availableOptions" value="{{option.id}}" (option.id == order.Order.assigned_to) ? ng-selected="true":"">{{option.name}}</option> 
</select> 

Надеюсь, что это решит вашу проблему.

+0

Не работает ваш код. :( – Chinmay235

0

Для правильной работы выбрать, необходимо указать свойство нг-режимные, посмотрите на этот пример:

<select id="inptAdmin" name="inptAdmin" class="form-control" 
    ng-model="res.adminUser.id" ng-options="user.id as user.name + ' - ' + user.email for user in listUser" required="required"> 
</select> 

В моей контроллеру я владею свойством listUser, который имеет список пользовательских объектов, но в ng-опциях я указываю, что хочу использовать идентификатор этих объектов в качестве значения, а в ng-модале указать, где он будет сохранен, значение Выбрать. В этом примере, если «res.adminUser.id» из заполненного, автоматически выбирает соответствующее значение в select.

Надеюсь, я помог.

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