AngularJS - 为什么不替换:true使用templateUrl属性?

dnc*_*253 17 javascript angularjs

我有一个非常简单的指令,我想从单独的HTML文件加载模板.我希望HTML替换指令,因此我将replace: true属性添加到指令中.但是,当我这样做时,模板根本不包括在内.

我创建了一个jsFiddle,你可以看到这个.如果您使用Firebug或其他东西来检查DOM,您可以看到当它仅使用template属性时它会替换元素.如果你取消了,replace: true你可以看到templateUrl附加到foo元素的HTML .但是,只要我添加了replace: truetemplateUrl所有我看到的是<foo></foo>在DOM.

有什么理由你不能一起使用这两个属性?我远非javascript的专家,所以任何关于这里发生的事情的信息将不胜感激.

Glo*_*opy 34

确保你的html中的内容templateUrl只有一个根元素.这不是一个问题,replace: false但在成为问题的时候replace: true,您将看到此控制台错误(使用FireBug):

Error: Template must have exactly one root element.
Run Code Online (Sandbox Code Playgroud)

这是一个jsFiddle它不工作(有两个根元素)和另一个工作.

  • 我的html文件在我的根级元素之外有一些注释.我认为评论很好,但是当我删除所有外部评论并且只有一个外部div时,它工作得很好.谢谢! (8认同)
  • 任何人都有使用表行标签的运气吗?如果用tr td替换工作示例,它将停止工作...... (3认同)