Выбор значения `<option>` из контроллера для ` ` - PullRequest
0 голосов
/ 26 февраля 2020
<select
      class="form-control input-md
      availabiltyDatesInput pull-left"
      name="statusModel"
      autocomplete="off"
      id="statusModel"
      ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
      ng-model="statusModel">
 </select>

У меня есть выбор с опциями. И мне нужно, чтобы значение этого выбора было предварительно заполнено.

Я пытаюсь установить ng-модель в контроллере:

angular.module("app.alerts")
.controller("alertsCtrl", function ($scope, CarmateCommonApiSvc, $uibModal) {

     getLookupsData();

     var alertStatuses = [];

     function getLookupsData() {
        alertStatuses = [];

        CarmateCommonApiSvc.getLookups().then(function (res) {
            if (res.code != 0) return;
            _.each(res.data.allLookups, function (item, index, arr) {

                if(item.name == 'AlertStatus'){
                    alertStatuses.push(item);
                }
            });
            $scope.alertStatuses = alertStatuses;                
            $scope.statusModel = alertStatuses[0];
        })
     }
});

Но это не работает. Я новичок в AngularJs

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

statusModel следует устанавливать только как одну вейл, а не как полный объект alertStatuses[0]. Итак, обновите ваш код как:

$scope.statusModel = alertStatuses[0].value || 0;
1 голос
/ 26 февраля 2020

Вам необходимо установить ng-модель со следующим значением:

$scope.statusModel = alertStatuses[0].value;

Для получения дополнительной информации и примеров, проверьте здесь: ссылка

Возможно, вам следует сначала проверьте, есть ли в массиве какие-либо элементы:

if(alertStatuses.length > 0){
    $scope.statusModel = alertStatuses[0].value;
}

0 голосов
/ 26 февраля 2020

На самом деле вы можете злоупотреблять директивой ng-init .

<select
  class="form-control input-md availabiltyDatesInput pull-left"
  name="statusModel"
  autocomplete="off"
  id="statusModel"
  ng-options="alertStatus.value as alertStatus.text for alertStatus in alertStatuses"
  ng-model="statusModel"
  ng-init="statusModel = alertStatuses[0]"
>
</select>
...