Event emitter from dialog afterClosed subscribe to the parent
I want to emit an event after closed a material dialog but doesn't work (maybe because angular code is out of zone?).
if I try this, it works fine (the event is properly attached in the html parent):
onClick(){
this.actionEmitter.emit(result);
}
But if I put this code in afterClosed event:
dialogRef.afterClosed().subscribe(result => {
this.actionEmitter.emit(result);
});
It doesn't work. No error shown but the event stop there. How can I fix it?
dialog angular5 material eventemitter zone
add a comment |
I want to emit an event after closed a material dialog but doesn't work (maybe because angular code is out of zone?).
if I try this, it works fine (the event is properly attached in the html parent):
onClick(){
this.actionEmitter.emit(result);
}
But if I put this code in afterClosed event:
dialogRef.afterClosed().subscribe(result => {
this.actionEmitter.emit(result);
});
It doesn't work. No error shown but the event stop there. How can I fix it?
dialog angular5 material eventemitter zone
add a comment |
I want to emit an event after closed a material dialog but doesn't work (maybe because angular code is out of zone?).
if I try this, it works fine (the event is properly attached in the html parent):
onClick(){
this.actionEmitter.emit(result);
}
But if I put this code in afterClosed event:
dialogRef.afterClosed().subscribe(result => {
this.actionEmitter.emit(result);
});
It doesn't work. No error shown but the event stop there. How can I fix it?
dialog angular5 material eventemitter zone
I want to emit an event after closed a material dialog but doesn't work (maybe because angular code is out of zone?).
if I try this, it works fine (the event is properly attached in the html parent):
onClick(){
this.actionEmitter.emit(result);
}
But if I put this code in afterClosed event:
dialogRef.afterClosed().subscribe(result => {
this.actionEmitter.emit(result);
});
It doesn't work. No error shown but the event stop there. How can I fix it?
dialog angular5 material eventemitter zone
dialog angular5 material eventemitter zone
asked Jan 2 at 13:16


S.FoxS.Fox
3618
3618
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Finally I figured out the problem. It wasn't an issue of the out of zone.
The hierarchy of components is this:
- Parent: list of item
- Child: an item with mouseleave and mouseover to show the operations buttons that open the dialogs
- dialog
What's happen was the dialog is opened when mouse enter in the item, in this time lost the focus and in html showOperations was false. The actionEmitter didn't exist anymore.
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
I've resolved with [hidden] instead of *ngIf:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>
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%2f54007076%2fevent-emitter-from-dialog-afterclosed-subscribe-to-the-parent%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
Finally I figured out the problem. It wasn't an issue of the out of zone.
The hierarchy of components is this:
- Parent: list of item
- Child: an item with mouseleave and mouseover to show the operations buttons that open the dialogs
- dialog
What's happen was the dialog is opened when mouse enter in the item, in this time lost the focus and in html showOperations was false. The actionEmitter didn't exist anymore.
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
I've resolved with [hidden] instead of *ngIf:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>
add a comment |
Finally I figured out the problem. It wasn't an issue of the out of zone.
The hierarchy of components is this:
- Parent: list of item
- Child: an item with mouseleave and mouseover to show the operations buttons that open the dialogs
- dialog
What's happen was the dialog is opened when mouse enter in the item, in this time lost the focus and in html showOperations was false. The actionEmitter didn't exist anymore.
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
I've resolved with [hidden] instead of *ngIf:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>
add a comment |
Finally I figured out the problem. It wasn't an issue of the out of zone.
The hierarchy of components is this:
- Parent: list of item
- Child: an item with mouseleave and mouseover to show the operations buttons that open the dialogs
- dialog
What's happen was the dialog is opened when mouse enter in the item, in this time lost the focus and in html showOperations was false. The actionEmitter didn't exist anymore.
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
I've resolved with [hidden] instead of *ngIf:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>
Finally I figured out the problem. It wasn't an issue of the out of zone.
The hierarchy of components is this:
- Parent: list of item
- Child: an item with mouseleave and mouseover to show the operations buttons that open the dialogs
- dialog
What's happen was the dialog is opened when mouse enter in the item, in this time lost the focus and in html showOperations was false. The actionEmitter didn't exist anymore.
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
I've resolved with [hidden] instead of *ngIf:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>
answered Jan 2 at 15:25


S.FoxS.Fox
3618
3618
add a comment |
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%2f54007076%2fevent-emitter-from-dialog-afterclosed-subscribe-to-the-parent%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