我写了一个小确认对话框组件,我将它附加到DOM,在我的app.component.html
中<app-confirm-dialog></app-confirm-dialog>
当我调用服务方法
时,组件显示出来有效('','')。
import { Injectable } from '@angular/core';
@Injectable()
export class ConfirmDialogService
{
activate: (message?: string, title?: string) => Promise<boolean>;
constructor() { }
}
正如我的用户所说,我的应用确认对话框的代码已附加并正在收听更改,这对性能不是很好。
动态注入它是否更好,或者在* ngIf = false时是否可以将其附加?
答案 0 :(得分:0)
这取决于您的使用案例 - 如果您认为确认对话是singleton,那么依赖注入将是可行的方法。 (对于确认对话,这是一个非常安全的假设 - 怀疑你会有多个实例)
另一方面,如果由于某种原因你想在屏幕上有多个确认对话框,你将被迫使用ngIf
。
当条件为false时,记住ngIf
实际上会阻止DOM中存在元素 - 这意味着它们的组件逻辑不会侦听更改,因此您可能需要考虑这些。
无论如何,我认为你没有注意到像这样微不足道的东西的性能差异。