How to close a modal window with Nativescript in Angular?
I have a modal using the modal service:
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
private modal: ModalDialogService,
I can call a modal, for example
this.modal.showModal(MyModalComponent, options).then(res => {
// console.log(res);
});
Now I want to close the modal, but not from within the modal itself. This already works in iOS:
const page = topmost().currentPage;
if (page && page.modal) {
page.modal.closeModal();
} else {
console.log("error closing modal!!!!");
}
But running this with Android, it will always goes to the error console.log, resulting the modal not being closed. The user can still close it (the modal has a close button), but I also want to programaticly close the modal.
android angular modal-dialog nativescript
add a comment |
I have a modal using the modal service:
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
private modal: ModalDialogService,
I can call a modal, for example
this.modal.showModal(MyModalComponent, options).then(res => {
// console.log(res);
});
Now I want to close the modal, but not from within the modal itself. This already works in iOS:
const page = topmost().currentPage;
if (page && page.modal) {
page.modal.closeModal();
} else {
console.log("error closing modal!!!!");
}
But running this with Android, it will always goes to the error console.log, resulting the modal not being closed. The user can still close it (the modal has a close button), but I also want to programaticly close the modal.
android angular modal-dialog nativescript
add a comment |
I have a modal using the modal service:
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
private modal: ModalDialogService,
I can call a modal, for example
this.modal.showModal(MyModalComponent, options).then(res => {
// console.log(res);
});
Now I want to close the modal, but not from within the modal itself. This already works in iOS:
const page = topmost().currentPage;
if (page && page.modal) {
page.modal.closeModal();
} else {
console.log("error closing modal!!!!");
}
But running this with Android, it will always goes to the error console.log, resulting the modal not being closed. The user can still close it (the modal has a close button), but I also want to programaticly close the modal.
android angular modal-dialog nativescript
I have a modal using the modal service:
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
private modal: ModalDialogService,
I can call a modal, for example
this.modal.showModal(MyModalComponent, options).then(res => {
// console.log(res);
});
Now I want to close the modal, but not from within the modal itself. This already works in iOS:
const page = topmost().currentPage;
if (page && page.modal) {
page.modal.closeModal();
} else {
console.log("error closing modal!!!!");
}
But running this with Android, it will always goes to the error console.log, resulting the modal not being closed. The user can still close it (the modal has a close button), but I also want to programaticly close the modal.
android angular modal-dialog nativescript
android angular modal-dialog nativescript
edited Nov 13 '18 at 16:13
Fantômas
32.5k156388
32.5k156388
asked Nov 13 '18 at 15:53
fransyozeffransyozef
1408
1408
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
That's not the way how you should do it in Angular. Inject ModalDialogParams
and use the closeCallback
method.
constructor(private modalDialogParams: ModalDialogParams) {}
onCloseButtonTap() {
this.modalDialogParams.closeCallback();
}
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case useInjector
get getModalDialogParams
.
– Manoj
Nov 14 '18 at 12:20
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284744%2fhow-to-close-a-modal-window-with-nativescript-in-angular%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
That's not the way how you should do it in Angular. Inject ModalDialogParams
and use the closeCallback
method.
constructor(private modalDialogParams: ModalDialogParams) {}
onCloseButtonTap() {
this.modalDialogParams.closeCallback();
}
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case useInjector
get getModalDialogParams
.
– Manoj
Nov 14 '18 at 12:20
add a comment |
That's not the way how you should do it in Angular. Inject ModalDialogParams
and use the closeCallback
method.
constructor(private modalDialogParams: ModalDialogParams) {}
onCloseButtonTap() {
this.modalDialogParams.closeCallback();
}
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case useInjector
get getModalDialogParams
.
– Manoj
Nov 14 '18 at 12:20
add a comment |
That's not the way how you should do it in Angular. Inject ModalDialogParams
and use the closeCallback
method.
constructor(private modalDialogParams: ModalDialogParams) {}
onCloseButtonTap() {
this.modalDialogParams.closeCallback();
}
That's not the way how you should do it in Angular. Inject ModalDialogParams
and use the closeCallback
method.
constructor(private modalDialogParams: ModalDialogParams) {}
onCloseButtonTap() {
this.modalDialogParams.closeCallback();
}
answered Nov 13 '18 at 16:19
ManojManoj
5,2692921
5,2692921
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case useInjector
get getModalDialogParams
.
– Manoj
Nov 14 '18 at 12:20
add a comment |
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case useInjector
get getModalDialogParams
.
– Manoj
Nov 14 '18 at 12:20
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
Is this the constructor of my MyModalComponent? Because from the MyModalComponent yes I can close it, but that requires user interaction. I want to close it programmactly. I know have a "fix" with a observable.
– fransyozef
Nov 14 '18 at 10:13
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
It doesn't need any user interaction. I had placed the code on button click just for demo, the close callback can be called anytime without user interaction.
– Manoj
Nov 14 '18 at 11:17
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
Yeah but what I don't see from your code, is that this.modalDialogParams.closeCallback(); called within the the actual modal component or from the parent. For example I have app.component.ts , there I create the modal with this.modal.showModal (). Now I want to close the modal also from app.component.ts and not from my actual modal component (MyModalComponent)
– fransyozef
Nov 14 '18 at 11:27
In that case use
Injector
get get ModalDialogParams
.– Manoj
Nov 14 '18 at 12:20
In that case use
Injector
get get ModalDialogParams
.– Manoj
Nov 14 '18 at 12:20
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284744%2fhow-to-close-a-modal-window-with-nativescript-in-angular%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown