我们可以在Angular 2中使用以下选择器创建指令
selector:'[myDir]'
消费:<h1 myDir></h1>
selector:'.myDir'
消费:<h1 class="myDir"></h1>
selector:'myDir'
消费:<myDir></myDir>
那么为什么我们不能使用ID(#)创建指令
selector : '#myDir'
最佳答案
我们无法使用 ID(#) css选择器声明一个 Angular Directive(指令),因为它限制了可重用性,这是组件/指令的最重要功能之一。
如果我们使用 #myDir 选择器声明该指令,那么我们只能在页面上使用它一次,因为在w3c标准中,它明确提到了在一致的文档中,无论哪个ID类型,两个ID属性都不能具有相同的值携带它们的元素。
有关更多信息,请参见w3c draft。