首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组件html上带有指令的角8问题

组件html上带有指令的角8问题
EN

Stack Overflow用户
提问于 2019-07-16 19:41:31
回答 1查看 1.6K关注 0票数 2

我创建了一个使用角8的指令。

指令代码:

代码语言:javascript
复制
import { Directive, ViewContainerRef } from '@angular/core';

@Directive({
  selector: '[appDynamic]',
  exportAs: 'dynamicdirective'
})
export class DynamicDirective {

  constructor(public viewContainerRef: ViewContainerRef) { }

}

然后,我将它添加到组件ts文件中:

代码语言:javascript
复制
import { Component, OnInit, ComponentFactoryResolver, ViewChild } from '@angular/core';

@Component({
  selector: 'app-preview',
  templateUrl: './preview.component.html',
  styleUrls: ['./preview.component.scss']
})
export class PreviewComponent implements OnInit {

  @ViewChild('sider', {static: true})
  sider;

  constructor(private componentFactoryResolver: ComponentFactoryResolver) {
  }

  ngOnInit() {
    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PreviewComponent);
    this.sider.viewContainerRef.createComponent(componentFactory);
  }

}

最后,我将代码添加到组件的html中,这是我获得错误的地方:

代码语言:javascript
复制
<ng-template #sider="dynamicdirective" dynamic></ng-template>

上面的代码行给出了以下错误:

代码语言:javascript
复制
There is no directive with "exportAs" set to "dynamicdirective"

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 19:56:45

因为您的选择器是appDynamic,所以需要使用它来设置指令。

代码语言:javascript
复制
<ng-template #sider="dynamicdirective" appDynamic></ng-template>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57064398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档