在 ngOnInit 函数中打开 ng-template 不起作用

Posted

技术标签:

【中文标题】在 ngOnInit 函数中打开 ng-template 不起作用【英文标题】:open ng-template in ngOnInit function not working 【发布时间】:2019-05-24 13:12:17 【问题描述】:

我创建了一个带有两个文本字段的 ng-template。我试图在我的屏幕加载时打开这个模板弹出窗口。但是当我通过我的 id 时它不起作用。

<ng-template #contentreset let-c="close" let-d="dismiss">
                <div class="modal-header">
                    <p class="modal-title" style="color:black;font-weight: bold;font-size:14px;">Reset password</p>
                    <button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">

                 <
                </div>

ngOnInit() 
 this.modalService.open(contentreset, centered: true ); //here modalservice is NgbModal

);

我尝试通过单击其他按钮传递值,但它不起作用。如何在页面加载时传递 ng 模板 id

【问题讨论】:

【参考方案1】:

您的视图未加载尝试一下

ngAfterViewInit() 

 life cycle of component

像这样:

ngAfterViewInit() 
 this.modalService.open(contentreset, centered: true ); //here modalservice is NgbModal

);

更多关于LIFE_CYCLE_HOOKS

【讨论】:

我试过了.. 甚至没有工作。使用“#contentreset”不起作用 那你可能用错了...看看这个链接***.com/questions/49244566/…【参考方案2】:

在使用ngTemplate之前,我们需要在组件中创建它的tempateRef,所以试试这样

 @ViewChild('contentreset ') contentreset : TemplateRef<any>;

ngAfterViewInit() 中调用此模板以获取更多信息,请查看here

 ngAfterViewInit() 
     this.modalService.open(this.contentreset, centered: true ); //here modalservice is NgbModal
 );

【讨论】:

以上是关于在 ngOnInit 函数中打开 ng-template 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

组件销毁并重新访问后,订阅在 ngOnInit 函数中运行

在构造函数或 ngOnInit 中加载异步函数

在 angular2 中的 ngOnInit 之后,在构造函数中订阅服务

Angular 中 ngOnInit() 的意义是啥?

在 Angular 5 中的 ngoninit 之后如何运行函数

为啥我无法访问在 ngOnInit 上设置的对象