Angular.js: 带有自关闭标签的自定义指令捕获标签兄弟

创建于 2013-02-05  ·  12评论  ·  资料来源: angular/angular.js

当使用在模板中与自关闭标签一起使用的 type 元素指令时,在处理指令时将删除标签后面的同级。
例如

假设有一个名为“foo”的指令,模板是

<div>
  <foo />
  <span>Sibling</span>
</div>

将从最终结果中删除兄弟姐妹

我在 Mac 上使用 Chrome 24.0.1312.57 和 Safari 6.0.2 (8536.26.17) 都遇到过这种情况

解决方法:将<foo />替换<foo></foo>

最有用的评论

html 规范定义的自关闭或空元素对浏览器解析器来说非常特殊。 你不能自己做,所以对于你的自定义元素,你必须坚持使用非空元素( <foo></foo> )。

这不能在角度上改变。 关闭。

所有12条评论

html 规范定义的自关闭或空元素对浏览器解析器来说非常特殊。 你不能自己做,所以对于你的自定义元素,你必须坚持使用非空元素( <foo></foo> )。

这不能在角度上改变。 关闭。

这也让我绊倒了。 可以在文档中添加一些内容吗? 在 Angular 网站上搜索“自闭合标签”时没有任何显示,但谷歌让我来到了这里。

不幸的是,没有带有自关闭标签的指令,实际上不可能支持这些,因为浏览器中的 HTML 解析器决定是否允许标签为空标签。 :(

我认为文档中提到了这一点,但如果没有,请提交一个补丁并记录下来!

也许我没有使用正确的文档? 搜索“自动关闭”是一个空操作(甚至不说“没有结果”或任何东西)并且搜索“指令”给了我大量的结果,其中没有一个在链接中包含“指令”这个词. 所以,我不确定那个补丁会去哪里。

如果您想使用自定义的“自关闭”或 void 元素,您可以将文档作为 XHTML 交付,但我从未尝试过将 AngularJS 与 XHTML 一起使用。

:+1: @chbrown : 关于在指令文档中提及这一点的建议。
:+1: @Lenne231 : 一个有趣的观察:AngularJS 是否适用于 XHTML?

:+1:@Lenne231 :一个有趣的观察:AngularJS 是否适用于 XHTML?

至少其中一些对 XHTML 有效,尽管不清楚有多少。

刚刚遇到<textarea>需要在 IE 中自动关闭的场景

这是一个非问题还是有解决方法? 权力是否也会在 Stack Overflow 上添加该问题的答案以供将来参考。

@IgorMinar ,我不同意您对规范的阅读和解释。 这是VOID ELEMENT规范。 它并没有说它“对浏览器非常特殊”。 它确实说它可以“在任何情况下都没有内容”。 在这种情况下,Angular 团队可能会宣布这是标准并结束讨论。 Angular 也有可能(但您没有说)无法跨浏览器类型正确处理 DOM VOID 元素。

然而,我不相信这些都站得住脚。 没有理由不修复这种行为。 正确的解决方法是用开始和结束标记替换 void 元素(似乎是当前行为,Angular 已经在整个地方操纵 DOM),然后不要抓住对等点或以其他方式消灭它们(即修复错误) . 否则,我们将被迫编写作为变通方法的 HTML 代码。

<speaker-control ng-model="volume"/><speaker-control ng-model="volume"></speaker-control>好得多

嗯。 请重新考虑这一点或发布指向处理指令的 Angular 源代码的指针。 也许这里的某个人会有时间、精力和精力来提交修复以供将来纳入。

如果有人想看到这种情况发生或为了一个简单的测试用例,这里是一个jsFiddle

好的,我对此表示纠正。 这是有关该主题的Stack Overflow 问答。 一位评论者表示,问题在于浏览器(错误)对无效元素的解释。 我创建了另一个jsFiddle来演示导致此问题的浏览器行为。 我怀疑这是某些原始浏览器中早期的错误实现,现在已经传播到每个浏览器。 这是一种很少使用的标记语法,大多数人不了解 void 元素应该如何工作。 XML(以及之前的 SGML)在几年前就已经设置了所有这些; 这不是标签语义应该工作的方式。 老实说,应该修复所有浏览器行为。 不知何故,我怀疑前端 MVC 框架中的一个小例子是否会触发浏览器中的 WWW 更改。 如果要修复它,我想它必须进入下一个 W3C 对 HTML 的修订。 有人想拿起火炬吗?

这里只是一个想法。 也许它是愚蠢的。 但是将 angular 指令添加到自闭合<br />是否可行?

@bjorn-ali-goransson,它应该可以工作,但我不知道这与该线程有什么关系。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

guyandtheworld picture guyandtheworld  ·  3评论

ceymard picture ceymard  ·  3评论

ashclarke picture ashclarke  ·  3评论

jtorbicki picture jtorbicki  ·  3评论

jetta20162 picture jetta20162  ·  3评论