как заставить выпадающий список выбрать определенное значение из получения идентификатора из базы данных?

В приведенном ниже коде показан раскрывающийся список с использованием ng-repeat. Когда я редактирую этот объект, мне нужно, чтобы они отображали уже определенное выбранное значение, а не просто отображали весь список. Я знаю, что могу использовать ключевое слово selected, когда хочу выбрать определенное значение. Тогда что, если я использовал ng-repeat для заполнения раскрывающегося списка? Как я могу сделать раскрывающийся список, выбирая определенное значение, используя идентификатор?

<div ng-if="field.name=='ClienteleId'" class="input-group inputFill">
    <select ng-disabled="defaultSaveButtons[$index]" class="form-control inputFill2"
    ng-model="field.value" ng-options="clientele.id as clientele.name for clientele in     dropdown.clienteleOptions  | orderBy:'name'  track by clientele.id"></select>
 /div>


person user13151042    schedule 03.04.2020    source источник


Ответы (1)


Чтобы установить значение <select> в AngularJS, вам нужно изменить переменную, которая установлена ​​как ее ng-model, на одно из значений в ваших параметрах.

В вашем случае у вас есть field.value в качестве вашего ng-model, и ваши параметры используют атрибут name в качестве своей метки и атрибут id в качестве своего значения. Чтобы один из элементов в dropdown.clienteleOptions был выбран по умолчанию, вам необходимо установить field.value в атрибут id соответствующей записи в dropdown.clienteleOptions.

Представьте, что ваши параметры и поля выглядят так:

$scope.clienteleOptions = [
    {id: 1, name: 'test 1'},
    {id: 2, name: 'test 2'}
];

$scope.fields = [
    {name: 'ClienteleId', value: null}
    // ...
];

Где-то в вашем контроллере у вас будет что-то вроде этого, чтобы выбрать тест 2:

$scope.fields[0].value = 2;

Или сделать его более динамичным:

$scope.fields.forEach(function (field) {
    if (field.name === 'ClienteleId') {
        field.value = 2;
    }
});
person PLPeeters    schedule 03.04.2020