为什么指令选择器在`[]中

Man*_*dha 5 angular

我注意到,指令的选择器通常在中指定,[]但不带[]括号使用。为什么?

@Directive({
  selector: '[appGoWild]'
})
export class GoWildDirective implements OnInit {
  constructor(private renderer: Renderer2, private el: ElementRef) {}

  ngOnInit() {
    this.renderer.addClass(this.el.nativeElement, 'wild');
  }
}
Run Code Online (Sandbox Code Playgroud)

HTML中的用法

<h1 appGoWild>
  Hello World!
</h1>
Run Code Online (Sandbox Code Playgroud)

O. *_*per 7

根据文档

是方括号([])使它成为属性选择器。

因此,使用方括号,选择器引用一个属性,并且必须在声明时写出:

<h1 appGoWild>
Run Code Online (Sandbox Code Playgroud)

没有括号,选择器将引用一个元素:

<appGoWild>
Run Code Online (Sandbox Code Playgroud)

在前面提到的文档中,您可以app-root在本文结尾处找到带有伪指令的示例。