代码之家  ›  专栏  ›  技术社区  ›  Ole

角度5组件是否需要选择器中的“-”?

  •  2
  • Ole  · 技术社区  · 7 年前

    我正在复习 Angular 5 forms youtube tutorial 其中塞巴斯蒂安最初有一个表单选择器,名为 app-form01 ,但他删除了 app- 部分IIUC自定义元素应具有 - . 这放松了吗?

    2 回复  |  直到 7 年前
        1
  •  6
  •   Günter Zöchbauer    7 年前

    - 根本不需要。它被认为是良好的实践,因为它符合自定义元素要求。 此外,无论有无 - 您还可以使用大小写混合的名称。

    另请参见

    kebab-case removal 我们保持元素选择器Dasherize 因为 custom element spec .

    组件名称保持破折号大小写,因为 自定义元素规范,即使在 角度模板区分大小写模板仍然有效html5 片段(尽管由于区分大小写而具有更高的保真度 只有我们的html解析器才能看到)。

    很少有人知道自定义元素规范和保证 破折号给了我们,所以我认为最好是强制执行 所有指令/组件元素选择器至少有一个破折号 在里面。应该有一种方法可以通过 组件/指令元数据,但默认情况下不应启用。

    如果有人不熟悉自定义元素规范 在元素名称中添加破折号包括:

    • 元素成为自定义元素-DOM节点的类型为 HtmleElement代替HtmlUnknowneElement
    • 如果我们需要,我们可以 受益于 :unresolved psedo-class 通过注册假元素 通过文件。注册表项
    • 该规范保证浏览器将 不引入名称中带有破折号的本地元素,这意味着 如果浏览器本机实现 与角度组件选择器匹配的元素(例如)

    有关的更多信息 custom elements .

        2
  •  2
  •   DWilches    7 年前

    您可以在没有 - 分隔单词,Angular不知道您的单词是否已连接,它只是它的另一个标识符:

    <app-my-tag> -&燃气轮机; <appmytag>

    此外,您可以完全省略整个前缀:

    <应用程序我的标签(>); -&燃气轮机; <mytag>

    但是,不使用 - 分隔符使您的标记更难阅读,并且不为自定义标记使用前缀会增加名称冲突的可能性。