Angular4 PrimeNG 对话框作为组件
Angular4 PrimeNG dialog as component
我正在为 angular/primeng 问题而苦苦挣扎。我是 angular4 的新手,我正在尝试将对话框作为自己的组件打开和关闭。我有一个 list-component 数据表加载所有数据。如果您单击一行并按下打开按钮,dialog-component 应该打开。但是当我关闭对话框并想重新打开它时,它不起作用。
列表-component.html:
<button class="btn btn-default openBtn" type="button"
pButton label="Open" [disabled]="jobClosed" (click)="showDialog()">
</button>
<app-details [display]="display"></app-details>
列表-component.ts
display: boolean = false;
showDialog() {
this.display = true;
}
对话框-component.html
<p-dialog [(visible)]="display" modal="modal" [responsive]="true"
(onAfterHide)="onClose()">
<p>Runs!</p>
</p-dialog>
对话框-component.ts
@Input() display: boolean;
onClose(){
this.display = false;
}
问题是,当我单击按钮时对话框打开,但是当我关闭它并想再次打开它时,它不再打开了。有人知道为什么吗?我读过,我需要创建一个 @Output 变量并使用 EventEmitter,但我不知道这是否属实以及它是如何工作的。我希望有人知道为什么对话框在我关闭一次后不再重新打开。
我自己做的。正如我所说,这里需要一个 EventEmitter。
列表-component.html:
<button class="btn btn-default openBtn" type="button"
pButton label="Open" [disabled]="jobClosed" (click)="showDialog()">
</button>
<app-details [display]="display" (displayChange)="onDialogClose($event)"></app-details>
列表-component.ts:
display: boolean = false;
showDialog() {
this.display = true;
}
onDialogClose(event) {
this.display = event;
}
对话-component.html:
<p-dialog [(visible)]="display" modal="modal" [responsive]="true">
<p>Runs!</p>
</p-dialog>
对话框-component.ts:
@Input() display: boolean;
@Output() displayChange = new EventEmitter();
onClose(){
this.displayChange.emit(false);
}
// Work against memory leak if component is destroyed
ngOnDestroy() {
this.displayChange.unsubscribe();
}
我正在为 angular/primeng 问题而苦苦挣扎。我是 angular4 的新手,我正在尝试将对话框作为自己的组件打开和关闭。我有一个 list-component 数据表加载所有数据。如果您单击一行并按下打开按钮,dialog-component 应该打开。但是当我关闭对话框并想重新打开它时,它不起作用。
列表-component.html:
<button class="btn btn-default openBtn" type="button"
pButton label="Open" [disabled]="jobClosed" (click)="showDialog()">
</button>
<app-details [display]="display"></app-details>
列表-component.ts
display: boolean = false;
showDialog() {
this.display = true;
}
对话框-component.html
<p-dialog [(visible)]="display" modal="modal" [responsive]="true"
(onAfterHide)="onClose()">
<p>Runs!</p>
</p-dialog>
对话框-component.ts
@Input() display: boolean;
onClose(){
this.display = false;
}
问题是,当我单击按钮时对话框打开,但是当我关闭它并想再次打开它时,它不再打开了。有人知道为什么吗?我读过,我需要创建一个 @Output 变量并使用 EventEmitter,但我不知道这是否属实以及它是如何工作的。我希望有人知道为什么对话框在我关闭一次后不再重新打开。
我自己做的。正如我所说,这里需要一个 EventEmitter。
列表-component.html:
<button class="btn btn-default openBtn" type="button"
pButton label="Open" [disabled]="jobClosed" (click)="showDialog()">
</button>
<app-details [display]="display" (displayChange)="onDialogClose($event)"></app-details>
列表-component.ts:
display: boolean = false;
showDialog() {
this.display = true;
}
onDialogClose(event) {
this.display = event;
}
对话-component.html:
<p-dialog [(visible)]="display" modal="modal" [responsive]="true">
<p>Runs!</p>
</p-dialog>
对话框-component.ts:
@Input() display: boolean;
@Output() displayChange = new EventEmitter();
onClose(){
this.displayChange.emit(false);
}
// Work against memory leak if component is destroyed
ngOnDestroy() {
this.displayChange.unsubscribe();
}