首页 > 解决方案 > Angular TemplateRef 变量

问题描述

任何帮助或提示将不胜感激。我正在使用 Angular 8。在指令 time.directive.ts 中,我不明白“this.templateRef”是如何初始化的。我没有看到它初始化。它是在构造函数中初始化的吗?

application.component.html:

            <ul *appTimes="5">
              <li>Hi there!</li>
            </ul>

time.directive.ts:

            import { Directive, TemplateRef, ViewContainerRef, Input } from '@angular/core';

            @Directive({
              selector: '[appTimes]'
            })
            export class TimesDirective {

              constructor(
                private viewContainer: ViewContainerRef,
                private templateRef: TemplateRef<any>
              ) { }

              @Input('appTimes') set render(times: number) {
                this.viewContainer.clear();
                for(let i=0; i < times; i++) {
                  this.viewContainer.createEmbeddedView(this.templateRef, {});
                }
              }
            }

在此处输入图像描述

标签: angular

解决方案


由于依赖注入,它在构造函数中初始化


推荐阅读