Запомнить выбранные флажки в модале

0

Это сценарий, который мне нужен. Когда я открываю модальный ящик и проверяю некоторые флажки, в следующий раз, когда я открываю, я хочу, чтобы сначала были выбраны флажки. Ниже мой код.

Модальная функция Main Controller

  function openModal() {
            vm.modalInstance = $uibModal.open({
                animation: true,
                size: 'lg',
                templateUrl: "/template.html",
                controller: 'ModalController as vm',
                resolve: {
                    refFY: function () {
                        return vm.refFY;
                    }
                }
            });

            vm.modalInstance .result.then(function (selectedItem) {
                $log.info('Modal ok-ed ', selectedItem);
                vm.fySelections = selectedItem;
            }, function () {
                $log.info('Modal dismissed at: ' + new Date());
            });
        }

Модальный контроллер

function ModalController($uibModalInstance, $log, refFY) {
        var fvm= this;
        fvm.refFY = refFY;
        fvm.fySelections = [];

        $log.info(fvm);

        function dismissFYSelectionModal() {
            $uibModalInstance.dismiss('cancel');
        }

        function confirmFYSelectionModal() {
            $log.debug(fvm.fySelections);
            $uibModalInstance.close(fvm.fySelections);
        }

        function selectAll() {
            fvm.fySelections = angular.copy(fvm.refFY);
        }

        function resetAll() {
            fvm.fySelections = [];
        }

        fiscalyearvm.dismissFYSelectionModal = dismissFYSelectionModal;
        fiscalyearvm.confirmFYSelectionModal = confirmFYSelectionModal;
        fiscalyearvm.selectAll = selectAll;
        fiscalyearvm.resetAll = resetAll;
    }

** модальное тело просмотра **

    <div class="modal-body">
            <div class="panel">
                <div class="panel-body">
                    <div class="col-md-12" data-ng-repeat="fy in fvm.refFY" data-ng-show="fvm.refFY.length > 0">
                        <div class="ckbox ckbox-primary">
                            <label>
  <input type="checkbox" data-checklist-model="fvm.fySelections" data-checklist-value="fy">
                            {{fy.year}}
                        </label>
                    </div>
                </div>
            </div>
        </div>
</div>
  • 0
    Вам нужно сохранить сохраненные настройки после завершения сеанса или они могут быть сброшены во время сеанса?
  • 0
    Нет, мне не нужно, они могут быть сброшены
Показать ещё 3 комментария
Теги:
modal-dialog
checkbox

1 ответ

0

Я бы предложил сохранить состояния флажка в локальном хранилище. Этот модуль выглядит довольно прочным: https://github.com/grevory/angular-local-storage

Вы хотите настроить параметр хранения сеанса в этом модуле с помощью setStorageType() поскольку хранение сеанса остается постоянным только для сеанса, тогда как локальное хранилище является постоянным, пока вы не очистите данные просмотра для этой страницы.

Кроме того, вы можете sessionStorage() обратиться к API sessionStorage(): https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

У этого есть хороший метод для ввода в исходное состояние с модальным, который был добавлен в вашу область действия в угловом: Угловая js init ng-model от значений по умолчанию

Вместо использования текстовых значений используйте Booleans для установки атрибута ng-checked и вы должны быть в бизнесе.

Комментарий, если у вас есть проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню