在指令选择器中是否可以有冒号符号?
问题描述:
在指令选择器中可以有冒号符号吗?这不起作用在指令选择器中是否可以有冒号符号?
@Directive({
selector: '[my:selector]'
})
class MyDirective {
constructor(el: ElementRef) {}
}
答
从角的Directive Documentation(下元数据属性):
selector
必须是一个字符串。
selector
可以声明为以下之一:
-
element-name
:通过元素名称来选择。 -
.class
:按类名选择。 -
[attribute]
:按属性名称选择。 -
[attribute=value]
:按属性名称和值进行选择。 -
:not(sub_selector)
:仅当元素与sub_selector不匹配时才选择。 -
selector1, selector2
:选择selector1或selector2是否匹配。
记住,你基本上是一个字符串中传递一个CSS选择器(有一些例外,不是每一个属性选择器或伪选择的作品),所以因为[attribute:selector]
不是有效的CSS选择器,而不是有效的一个Angular可以理解的替代方案,它失败了。
信息,它应该是有效的CSS选择器肯定是在文档中缺少;)现在它对我有意义,谢谢! – yarm
没问题,很高兴我能帮忙! – squaremarco