【发布时间】:2015-08-12 06:07:55
【问题描述】:
我正在尝试构建一些导航指令来隔离复杂性。我想要以下 HTML 来呈现我的导航:
<custom-nav>
<nav-item>Item 1</nav-item>
<nav-item>Item 2</nav-item>
<nav-item>Item 3</nav-item>
</custom-nav>
如果我现在编写指令,生成的编译 HTML 将如下所示:
<custom-nav>
<nav>
<ul>
<nav-item><li><a>Item 1</a></li></nav-item>
<nav-item><li><a>Item 2</a></li></nav-item>
<nav-item><li><a>Item 3</a></li></nav-item>
</ul>
</nav>
</custom-nav>
但是,这是无效的 HTML(<ul>s 只能有 <li>s 作为子级)。
不使用replace: true,我解决这个问题的最佳方法是什么?我能想到的只有:
- 不要使用
<ul>或<li>- 使用 aria 角色来定义我自己的列表项。 - 不要使列表在语义上成为列表。我真的不想这样做。
有什么我忽略的吗?
【问题讨论】:
-
指令中不推荐使用替换,因此如果您能提供帮助,我不会使用它。
-
只用指令替换基本标签,这里没什么特别的。
-
@MatthewGreen 所以我的问题!
-
@dfsq,你能详细说明一下吗?
标签: angularjs html angularjs-directive semantic-markup