Это сценарий, который мне нужен. Когда я открываю модальный ящик и проверяю некоторые флажки, в следующий раз, когда я открываю, я хочу, чтобы сначала были выбраны флажки. Ниже мой код.
Модальная функция 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>
Я бы предложил сохранить состояния флажка в локальном хранилище. Этот модуль выглядит довольно прочным: 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
и вы должны быть в бизнесе.
Комментарий, если у вас есть проблемы.