J'essaie de trouver des exemples sur la façon de faire une boîte de dialogue modale de confirmation dans Angular 2.0. J'utilise la boîte de dialogue Bootstrap pour Angular 1.0 et je ne trouve aucun exemple sur le Web pour Angular 2.0. J'ai également vérifié les documents angulaires 2.0 sans succès.
Existe-t-il un moyen d'utiliser la boîte de dialogue Bootstrap avec Angular 2.0?
modal-dialog
angular
user636525
la source
la source
Réponses:
»
Pour afficher la toile de fond , vous aurez besoin de quelque chose comme ce CSS:
L'exemple autorise désormais plusieurs modaux en même temps . (voir la
onContainerClicked()
méthode).Pour les utilisateurs de Bootstrap 4 css , vous devez apporter une modification mineure (car un nom de classe css a été mis à jour à partir de Bootstrap 3). Cette ligne:
[ngClass]="{'in': visibleAnimate}"
doit être remplacée par:[ngClass]="{'show': visibleAnimate}"
Pour démontrer, voici un plunkr
la source
div.modal-footer
et le changement.app-modal-footer
de en.modal-footer
corrige ce problème.Voici un exemple assez décent de la façon dont vous pouvez utiliser le modal Bootstrap dans une application Angular2 sur GitHub .
L'essentiel est que vous pouvez envelopper l'initialisation bootstrap html et jquery dans un composant. J'ai créé un
modal
composant réutilisable qui vous permet de déclencher une ouverture à l'aide d'une variable de modèle.Il vous suffit d'installer le package npm et d'enregistrer le module modal dans votre module d'application:
la source
C'est une approche simple qui ne dépend pas de jquery ou de toute autre bibliothèque sauf Angular 2. Le composant ci-dessous (errorMessage.ts) peut être utilisé comme vue enfant de tout autre composant. Il s'agit simplement d'un modal bootstrap qui est toujours ouvert ou affiché. Sa visibilité est régie par l'instruction ngIf.
errorMessage.ts
errorMessage.html
Ceci est un exemple de contrôle parent (certains codes non pertinents ont été omis par souci de concision):
parent.ts
parent.html
la source
class="modal fade show in danger"
Maintenant disponible sous forme de package NPM
angulaire-personnalisé-modal
@Stephen Paul suite ...
ngOnDestroy
(ed) lorsque le modal est quitté.Initialisation du contenu paresseux
Pourquoi?
Dans certains cas, il se peut que vous ne souhaitiez pas que le mode modal conserve son état après avoir été fermé, mais plutôt restauré à l'état initial.
Problème modal d'origine
Passer le contenu directement dans la vue génère en fait l'initialisation avant même que le modal ne l'obtienne. Le modal n'a pas de moyen de tuer un tel contenu même en utilisant un
*ngIf
wrapper.Solution
ng-template
.ng-template
ne rend pas jusqu'à ce qu'on lui ordonne de le faire.mon-composant.module.ts
mon-composant.ts
modal.component.ts
modal.component.html
Références
Je dois dire que cela n'aurait pas été possible sans l'excellente documentation officielle et communautaire sur le net. Il pourrait aider certains d' entre vous aussi de mieux comprendre comment
ng-template
,*ngTemplateOutlet
et le@ContentChild
travail.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 -angulaire-896b0c689f6e
Solution complète de copier-coller
modal.component.html
modal.component.ts
modal.module.ts
la source
J'utilise ngx-bootstrap pour mon projet.
Vous pouvez trouver la démo ici
Le github est là
Comment utiliser:
Installez ngx-bootstrap
Importez dans votre module
la source
Voici mon implémentation complète du composant modal bootstrap angular2:
Je suppose que dans votre fichier principal index.html (avec les balises
<html>
et<body>
) au bas de la<body>
balise, vous avez:modal.component.ts:
modal.html:
Et exemple d'utilisation dans le composant de l'éditeur client: client-edit-component.ts:
client-edit.html:
Ofcourse
title
,showClose
,<mhead>
et<mfoot>
ar paramètres optionnels / tags.la source
bindModal(modal) {this._modal=modal;}
, vous pouvez utiliser de angulaireViewChild
de l' annotation, comme suit:@ViewChild('editModal') _modal: Modal;
. Il gère la reliure pour vous dans les coulisses.Vérifiez la boîte de dialogue ASUI qui crée au moment de l'exécution. Il n'est pas nécessaire de cacher et de montrer la logique. Simple service créera un composant au moment de l'exécution en utilisant AOT ASUI NPM
la source
essayez d'utiliser ng-window, cela permet au développeur d'ouvrir et de contrôler complètement plusieurs fenêtres dans des applications à une seule page de manière simple, sans Jquery, sans Bootstrap.
Configration disponible
la source
Angulaire 7 + NgBootstrap
Un moyen simple d'ouvrir le modal du composant principal et de lui renvoyer le résultat. c'est ce que je voulais. J'ai créé un tutoriel étape par étape qui comprend la création d'un nouveau projet à partir de zéro, l'installation de ngbootstrap et la création de Modal. Vous pouvez soit le cloner, soit suivre le guide.
J'espère que cela aide nouveau à Angular.!
https://github.com/wkaczurba/modal-demo
Détails:
modèle modal-simple (modal-simple.component.html):
Le modal-simple.component.ts:
Démo de celui-ci (app.component.html) - moyen simple de gérer l'événement de retour:
app.component.ts - onModalClosed est exécuté une fois le modal fermé:
À votre santé
la source