Angularjs использует кнопки «предыдущий / следующий» для выбора элементов в выпадающем меню - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть веб-страница, где я добавил выпадающий список дат.Он использует дату для отображения событий, которые были активны в эту дату, причем самая последняя дата выбирается при загрузке страницы.Пользователи просили, чтобы я также добавил кнопки «Предыдущий» и «Следующий» для циклического отображения дат.Естественно, предыдущий будет отключен в первый день, а следующий будет отключен в последний день.И кнопка «Предыдущий / следующий» изменила бы выбранное значение раскрывающегося списка, чтобы я мог выполнять проверки на нем при отображении того, что было активным.

Это не работает так, как у меня.

Просмотр:

<label for="uniqueStartDates">Effective Date: </label>
<select ng-model="selectedDate" ng-change="loadEffectiveDate()"
        ng-options="startDate for startDate in uniqueStartDates"></select>
<button ng-click="previousBtn()" ng-disabled="previousBtnDisabled()">
    Previous
</button>
    &nbsp;&nbsp;
<button ng-click="nextBtn()" ng-disabled="nextBtnDisabled()">
    Next
</button>

Спасибо за любую помощь.

РЕДАКТИРОВАТЬ:

Я разделил функции, но кнопки и функция отключения не работают.Чего мне не хватает, чтобы пройти?

 $scope.previousBtn = function () {
        for (var i = 0; i < $scope.uniqueStartDates.length; i++) {
            if ($scope.uniqueStartDates[i].selected) {
                index = i;
            }
        }

        index--;
        $scope.selectedDate = $scope.uniqueStartDates[index];
    }

    $scope.previousBtnDisabled = function () {
        var isDisabled = false;

     for (var i = 0; i < $scope.uniqueStartDates.length; i++) {
            if ($scope.uniqueStartDates[i].selected) {
                index = i;
            }
        }

        if (index === 0) {
            isDisabled = true;
        }
        else {
            $scope.uniqueStartDates[index].selected = true;
            isDisabled = false;
        }
        return isDisabled;
    }

    $scope.nextBtn = function () {
        for (var i = 0; i < $scope.uniqueStartDates.length; i++) {
            if ($scope.uniqueStartDates[i].selected) {
                index = i;
            }
        }

        index++;
        $scope.selectedDate = $scope.uniqueStartDates[index];
    }

    $scope.nextBtnDisabled = function () {
        var isDisabled = false;

     for (var i = 0; i < $scope.uniqueStartDates.length; i++) {
            if ($scope.uniqueStartDates[i].selected) {
                index = i;
            }
        }

        if ($scope.uniqueStartDates[index].value === currentDate) {
            isDisabled = true;
        }
        else {
            $scope.uniqueStartDates[index].selected = true;
            isDisabled = false;
        }
        return isDisabled;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...