Ионный - всплывающее окно Javascript
Это представление появится над обычным представлением.
Использование Popover
Поповер можно создать с помощью ion-popover-viewэлемент. Этот элемент нужно добавить в шаблон HTML и$ionicPopover сервис необходимо ввести в контроллер.
Есть три способа добавить поповер. Первый - этоfromTemplateметод, позволяющий использовать встроенный шаблон. Второй и третий способ добавления всплывающего окна - использоватьfromTemplateUrl метод.
Позвольте нам понять fromtemplate как описано ниже.
Код контроллера для метода Fromtemplate
.controller('DashCtrl', function($scope, $ionicLoading, $ionicPopover) {
// .fromTemplate() method
var template = '<ion-popover-view>' + '<ion-header-bar>' +
'<h1 class = "title">Popover Title</h1>' +
'</ion-header-bar>'+ '<ion-content>' +
'Popover Content!' + '</ion-content>' + '</ion-popover-view>';
$scope.popover = $ionicPopover.fromTemplate(template, {
scope: $scope
});
$scope.openPopover = function($event) {
$scope.popover.show($event);
};
$scope.closePopover = function() {
$scope.popover.hide();
};
//Cleanup the popover when we're done with it!
$scope.$on('$destroy', function() {
$scope.popover.remove();
});
// Execute action on hide popover
$scope.$on('popover.hidden', function() {
// Execute action
});
// Execute action on remove popover
$scope.$on('popover.removed', function() {
// Execute action
});
})
Как обсуждалось выше, второй и третий способ добавления всплывающего окна - использовать fromTemplateUrlметод. Код контроллера будет одинаковым для обоих способов, кромеfromTemplateUrl значение.
Если HTML-код добавлен в существующий шаблон, URL-адрес будет popover.html. Если мы хотим поместить HTML-код в папку шаблонов, тогда URL-адрес изменится наtemplates/popover.html.
Оба примера объяснены ниже.
Код контроллера для fromTemplateUrl
.controller('MyCtrl', function($scope, $ionicPopover) {
$ionicPopover.fromTemplateUrl('popover.html', {
scope: $scope
}).then(function(popover) {
$scope.popover = popover;
});
$scope.openPopover = function($event) {
$scope.popover.show($event);
};
$scope.closePopover = function() {
$scope.popover.hide();
};
//Cleanup the popover when we're done with it!
$scope.$on('$destroy', function() {
$scope.popover.remove();
});
// Execute action on hide popover
$scope.$on('popover.hidden', function() {
// Execute action
});
// Execute action on remove popover
$scope.$on('popover.removed', function() {
// Execute action
});
})
Теперь мы добавим script с шаблоном в файл HTML, который мы используем для вызова функции всплывающего окна.
HTML-код из существующего HTML-файла
<script id = "popover.html" type = "text/ng-template">
<ion-popover-view>
<ion-header-bar>
<h1 class = "title">Popover Title</h1>
</ion-header-bar>
<ion-content>
Popover Content!
</ion-content>
</ion-popover-view>
</script>
Если мы хотим создать HTML как отдельный файл, мы можем создать новый HTML-файл в templates папку и используйте тот же код, который мы использовали в вышеупомянутом примере, без script теги.
Вновь созданный HTML-файл выглядит следующим образом.
<ion-popover-view>
<ion-header-bar>
<h1 class = "title">Popover Title</h1>
</ion-header-bar>
<ion-content>
Popover Content!
</ion-content>
</ion-popover-view>
Последнее, что нам нужно, - это создать кнопку, при нажатии которой будет отображаться всплывающее окно.
<button class = "button" ng-click = "openPopover($event)">Add Popover</button>
Какой бы способ мы ни выбрали из приведенных выше примеров, результат всегда будет одинаковым.
В следующей таблице показаны $ionicPopover методы, которые можно использовать.
Метод | Вариант | Тип | Деталь |
---|---|---|---|
инициализировать (параметры) | область, focusFirst, backdropClickToClose, hardwareBackButtonClose | объект, логическое, логическое, логическое | Scopeиспользуется для передачи настраиваемой области в всплывающее окно. По умолчанию это $ rootScope.focusFirstInput используется для автоматической фокусировки первого ввода всплывающего окна. backdropClickToClose используется для закрытия всплывающего окна при нажатии на фон. hardwareBackButtonClose используется для закрытия всплывающего окна при нажатии аппаратной кнопки возврата. |
шоу ($ event) | $ событие | обещание | Устранено, когда всплывающее окно перестает отображаться. |
скрывать() | / | обещание | Устранено, когда всплывающее окно перестает скрываться. |
удалять() | / | обещание | Устранено после завершения удаления всплывающих окон. |
Показано() | / | Булево | Возвращает true, если всплывающее окно отображается, или false, если это не так. |