这个指令示例中的跨度来自哪里?

Where is the span coming from in this directive example?

This plunk 取自 Angular 开发人员指南,但对我来说没有意义。它只是应该显示 transclude 的基本功能,据我所知,但在呈现的输出中你会看到突然有一个 span 标签。那个是从哪里来的?它不是模板的一部分。

由于您的嵌入只是一个文本(实际上是一个隐含的 span),因此需要在编译 HTML.

时添加它

为避免这种情况,您可以手动将文本环绕在任何标记周围,例如 <div>,以便按原样插入。

如果你真的不想在中间有任何标签,你可以在指令中编写自己的compile方法,并将文本设置为element 直接使用 elem.text(content) 而不是 elem.html(content)