У меня есть следующий шаблон, которые имеют 4 модальный как (только разница в ид):СЦЕПЛЕНИЕ модальности в угловой
<div id="modal_1">
<div class="modal-header">
<h3>I'm a modal 1!</h3>
</div>
<div class="modal-body">
<ul>
<li ng-repeat="item in items">
<a ng-click="selected.item = item">{{ item }}</a>
</li>
</ul>
Selected: <b>{{ selected.item }}</b>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button>
<button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div>
</div>
Мой app.js выглядит как:
angular.module('app', ['ui.bootstrap', 'ngCookies']);
var ModalDemoCtrl = function ($scope, $cookieStore, $modal, $log) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.open = function() {
if(!$cookieStore.get('abc')){
var modalInstance = $modal.open({
templateUrl: 'modalContent.html',
controller: ModalInstanceCtrl,
resolve: {
items: function() {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
}
};
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function() {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
};
`
Мое требование:
Я хочу показать 4 модала (один за другим, когда пользователь нажимает «ОК»), если конкретный файл cookie недоступен, и пользователь не «отменил» любой из предыдущих предыдущих модалов.
Но я не могу цеплять модальности.
Как я могу связать модальные модели, чтобы предыдущий модал открыл еще один модальный режим до тех пор, пока условие не будет выполнено?
новый модальный вместо последнего, или новый модальный поверх последний? – klskl
Показанный код - это код непосредственно из демонстрации модальных документов. Он не показывает попыток открыть другой модальный. Создайте фабричную функцию вокруг модального кода инициализации и передайте информацию о шаге, чтобы вы могли изменить шаблон и логику в обратном вызове результата – charlietfl
, вы можете связать несколько модалов с помощью обещаний '$ q'. Если пользователь нажимает «ОК», вы выполняете «разрешение», и приложение откроет следующий модальный. Если пользователь нажимает «Отмена», вы выполняете «reject» и закрываете все модалы. – Michael