我们可以在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

    07-27 17:56