AngularJS не может получить выбранный индекс выпадающего меню - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть это выпадающее меню:

<select class="form-control" name="timeSlot" ng-model="user.dateTimeSlot" ng-change="dateTimeChanged(user.dateTimeSlot)" ng-blur="blur29=true" required style="float: none; margin: 0 auto;">

                                            <option ng-repeat="x in dateTimeSlots"
                                                    ng-disabled="x.taken"
                                                    ng-value="x.timeSlot">
                                                {{x.dateSlot}}
                                            </option>

                                        </select>

И я пытаюсь получить выбранный индекс для ng-изменения.Однако он всегда возвращает -1

$scope.dateTimeChanged = function (selectedItem) {

        var index = $scope.dateTimeSlots.indexOf(selectedItem);

        console.log(index);

    }

Почему он всегда возвращает -1 .... Вот скриншот моих данных:

enter image description here

То, что я пытаюсь сделать, это получить значение идентификатора для выбранного элемента.Что я делаю не так?

1 Ответ

0 голосов
/ 19 сентября 2018

Ну, это немного сомнительно, что вы действительно хотите.Мне кажется, вы пытаетесь бежать на двух лошадях :) Вы связываете ng-model с timeSlot, но что вам действительно нужно, так это индекс, чтобы вам легче было захватить объект?Как насчет привязки значений параметров непосредственно к индексам?:

<option ng-repeat="x in dateTimeSlots"
   ng-disabled="x.taken"
   ng-value="{{ $index }}"> <!-- here -->
    {{x.dateSlot}}
</option>

сейчас user.dateTimeSlot будет 0,1,2,3 и т. Д. (Когда выбрана опция).В методе изменения вы теперь получаете индекс

$scope.dateTimeChanged = function(selectedItem) {
  console.log($scope.dateTimeSlots[selectedItem]) //<-- the selected object by index
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...