Я пытаюсь найти несколько примеров того, как создать модальный диалог подтверждения в Angular 2.0. Я использовал диалог Bootstrap для Angular 1.0 и не смог найти в сети примеров для Angular 2.0. Я также безуспешно проверял документы angular 2.0.
Есть ли способ использовать диалог Bootstrap с Angular 2.0?
modal-dialog
angular
user636525
источник
источник
Ответы:
`
Чтобы показать фон , вам понадобится что-то вроде этого CSS:
Пример теперь позволяет использовать несколько модальных окон одновременно . (см.
onContainerClicked()
метод).Для пользователей css Bootstrap 4 необходимо внести 1 незначительное изменение (поскольку имя класса css было обновлено с Bootstrap 3). Эту строку:
[ngClass]="{'in': visibleAnimate}"
следует заменить на:[ngClass]="{'show': visibleAnimate}"
Чтобы продемонстрировать, вот plunkr
источник
div.modal-footer
и изменяя.app-modal-footer
для.modal-footer
исправления этого.Вот довольно приличный пример того, как вы можете использовать модальное окно Bootstrap в приложении Angular2 на GitHub .
Суть в том, что вы можете обернуть инициализацию начальной загрузки html и jquery в компонент. Я создал многоразовый
modal
компонент, который позволяет запускать открытие с помощью переменной шаблона.Вам просто нужно установить пакет npm и зарегистрировать модальный модуль в своем модуле приложения:
источник
Это простой подход, который не зависит от jquery или любой другой библиотеки, кроме Angular 2. Компонент ниже (errorMessage.ts) может использоваться как дочернее представление любого другого компонента. Это просто модальное окно начальной загрузки, которое всегда открыто или отображается. Его видимость регулируется выражением ngIf.
errorMessage.ts
errorMessage.html
Это пример родительского элемента управления (для краткости опущен некоторый нерелевантный код):
parent.ts
parent.html
источник
class="modal fade show in danger"
Теперь доступен как пакет NPM
угловой на заказ модальный
@ Стивен Пол продолжение ...
ngOnDestroy
(редактируется) при выходе из модального окна.Ленивая инициализация содержимого
Зачем?
В некоторых случаях вы можете не захотеть сохранить модальный статус после закрытия, а скорее восстановить его в исходное состояние.
Оригинальный модальный выпуск
Прямая передача содержимого в представление фактически создает его инициализирует еще до того, как модальное окно получит его. У модального окна нет способа уничтожить такой контент, даже если он использует
*ngIf
оболочку.Решение
ng-template
,ng-template
не отображается, пока не будет приказано это сделать.мой-component.module.ts
мой-component.ts
modal.component.ts
modal.component.html
Ссылки
Я должен сказать, что это было бы невозможно без отличной официальной документации и документации сообщества в сети. Это может помочь некоторым из вас тоже , чтобы лучше понять , как
ng-template
,*ngTemplateOutlet
и@ContentChild
работа.https://angular.io/api/common/NgTemplateOutlet
https://blog.angular-university.io/angular-ng-template-ng-container-ngtemplateoutlet/
https://medium.com/claritydesignsystem/ng-content -the-hidden-docs-96a29d70d11b
https://netbasal.com/understanding-viewchildren-contentchildren-and-querylist-in-angular-896b0c689f6e
https://netbasal.com/understanding-viewchildren-contentchildren-and-querylist-in -angular-896b0c689f6e
Полное решение для копирования и вставки
modal.component.html
modal.component.ts
modal.module.ts
источник
Для своего проекта я использую ngx-bootstrap .
Вы можете найти демо здесь
Гитхаб здесь
Как пользоваться:
Установите ngx-bootstrap
Импортировать в свой модуль
источник
Вот моя полная реализация модального компонента начальной загрузки angular2:
Я предполагаю , что в главном файле index.html (с
<html>
и<body>
метки) в нижней части<body>
тега у вас есть:modal.component.ts:
modal.html:
И пример использования в клиентском компоненте Editor: client-edit-component.ts:
клиент-edit.html:
Конечно
title
,showClose
,<mhead>
и<mfoot>
ар опциональных параметров / тегов.источник
bindModal(modal) {this._modal=modal;}
, вы можете использовать в угловуюViewChild
аннотацию, например , так:@ViewChild('editModal') _modal: Modal;
. Он обрабатывает переплет за вас за кулисами.Проверьте диалог ASUI, который создается во время выполнения. Нет необходимости скрывать и показывать логику. Сервис просто создаст компонент во время выполнения, используя AOT ASUI NPM
источник
попробуйте использовать ng-window, это позволяет разработчику открывать и полностью контролировать несколько окон в одностраничных приложениях простым способом, без JQuery, без Bootstrap.
Доступная конфигурация
источник
Угловой 7 + NgBootstrap
Простой способ открыть модальное окно из основного компонента и передать ему результат. это то, что я хотел. Я создал пошаговое руководство, которое включает создание нового проекта с нуля, установку ngbootstrap и создание Modal. Вы можете либо клонировать его, либо следовать руководству.
Надеюсь, это поможет новичку в Angular.!
https://github.com/wkaczurba/modal-demo
Подробности:
модально-простой шаблон (modal-simple.component.html):
Modal-simple.component.ts:
Демонстрация этого (app.component.html) - простой способ работы с событием возврата:
app.component.ts - onModalClosed выполняется после закрытия модального окна:
ура
источник