Wie Sie programmgesteuert schließen-ng-bootstrap-modal?
Habe ich ein modal:
<template #warningModal let-c="close" let-d="dismiss">
<div class="modal-header">
<button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Warning</h4>
</div>
<div class="modal-body">
The numbers you have entered result in negative expenses. We will treat this as $0.00. Do you want to continue?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="c('Close click')">No</button>
<button type="button" class="btn btn-secondary" (click)="submit()">Yes</button>
</div>
</template>
Immer, wenn ich Sie ja, ich möchte das er eine Funktion aufrufen und schließen sich an.
In mein controller, ich habe @ViewChild('warningModal') warning;
und in submit()
habe ich this.warning.close();
, aber ich bekomme this.warning.close is not a function
immer wenn ich auf "ja".
Wie bekomme ich diese zu arbeiten, wie ich es möchte?
ist es ng-bootstrap-oder ng2-bootstrap?
InformationsquelleAutor Alex Kibler | 2016-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie https://ng-bootstrap.github.io/ (wie in deiner Frage) Dinge sind sehr einfach - Sie können nur öffnen Sie ein modal und schließen es aus einer Vorlage (wie in deinem code) oder programmgesteuert (durch Aufruf
close()
Methode auf das zurückgegebene Objekt vom TypNgbModalRef
).Ist hier ein minimal-Beispiel zeigt diese in Aktion: http://plnkr.co/edit/r7watmQuyaUQ8onY17Z1?p=preview
Könnten Sie entweder verwirrend unterschiedlichen Bibliotheken oder vielleicht gibt es JMD mehr zu Ihrer Frage, aber es ist schwer zu sagen, mehr nur auf die info zur Verfügung gestellt.
plunkr nicht funktioniert.
plunker nicht funktioniert, aber deine Lösung ist Arbeit für mich,
InformationsquelleAutor pkozlowski.opensource
Zu erläutern, auf pkozlowski.opensource-Antwort, die Möglichkeit habe ich den Verweis auf die NgbModalRef-Klasse wurde durch das ändern, was in seinem plunker auf der diese.modalService.öffnen Sie wie folgt vor:
Dann war ich in der Lage zu nennen:
Die arbeitete wie ein Charme. Oh, und vergessen Sie nicht, setzen definieren modalReference an der Spitze der Klasse:
Sie nicht wirklich brauchen, um es zu importieren, wenn Sie definieren
modalReference
wie erOptional können Sie die pass-argument zu schließen, zB
this.modalReference.close("submitted");
ich fand diese Antwort direkt auf den Punkt, lösen meine Schnellste Lösung.
nach einer Stunde dieses problem zu lösen, fand ich dieses..danke es hilft viel
InformationsquelleAutor TBrenner
Im Gegensatz zu TBrenner ich konnte es nicht' nur verwenden
modalReference: any;
Habe ich mit:
Hatte ich zum importieren in meine app.- Modul.ts
und natürlich fügen Sie es zu dem Anbieter:
sobald es fertig ist, hier ist der code aus der modalen Komponente:
https://ng-bootstrap.github.io sollte hinzufügen, einige Informationen über die Referenz Bedeutung.. ich kämpfte ein wenig zu verstehen, ich brauchte, um einen Verweis zu erstellen, um den Zugriff auf die ".close ()" - Methode. Dank Euch allen, es hat mir sehr geholfen!
InformationsquelleAutor Christophe Gudlake
Öffnen der modal
schließen die modale Verwendung der Referenz, wie Amit sagte
Quelle:https://ng-bootstrap.github.io/#/components/modal/examples
InformationsquelleAutor Eric
Was Sie getan haben, mit
@ViewChild('warningModal') warning
ist denTemplateRef
Sie als in Ihrem modal ist, nicht die tatsächlicheNgbModalRef
.Es hängt davon ab, wie Sie open up your modal, wenn Sie es öffnen programmgesteuert erhalten Sie
NgbModalRef
Objekt, das Sie anrufen könnte.close
auf.InformationsquelleAutor Amit
Haben Sie
let-d
oderlet-c
im<template #warningModal let-c="close" let-d="dismiss">
als Variablen, die beide Funktionen. So, der einfache Weg, es zu tun ist: pass inc
oderd
in senden als argument wie dieses(click)="submit(c)"
oder(click)="submit(d)"
und dann in der Funktion rufen Sie einfachsubmit(c){ c('close modal'); }
. Hoffe, das funktioniert für Sie.InformationsquelleAutor Edwin Anciani