是否可以在指令选择器中使用冒号?

时间:2017-10-12 10:35:48

标签: angular angular-directive

是否可以在指令选择器中使用冒号?这不起作用

@Directive({
  selector: '[my:selector]'
})
class MyDirective {
  constructor(el: ElementRef) {}
}

see plunker

1 个答案:

答案 0 :(得分:1)

来自Angular的Directive Documentation(在元数据属性下):

selector必须是字符串。

selector可以声明为以下之一:

  • element-name:按元素名称选择。
  • .class:按类名选择。
  • [attribute]:按属性名称选择。
  • [attribute=value]:按属性名称和值选择。
  • :not(sub_selector):仅在元素与sub_selector不匹配时选择。
  • selector1, selector2:如果selector1或者selector2匹配,则选择。

请记住,您基本上是在该字符串中传递一个CSS选择器(有一些例外,并非每个属性选择器或伪选择器都有效),因为[attribute:selector]不是有效的CSS选择器,并且不是其中之一Angular可以理解的有效替代方案,它失败了。