当前位置: 首页 > 面试题库 >

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

周飞
2023-03-14
问题内容

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

我创建了一个jsFiddle,您可以在这里看到它。如果您使用Firebug或其他工具检查DOM,则可以看到,当仅使用template属性时,它确实会替换元素。如果您将起飞,则replace: true可以templateUrl在foo元素后面看到HTML 。但是,只要我添加了replace: truetemplateUrl所有我看到的是<foo></foo>在DOM。

您是否有某些原因不能同时使用这两个属性?我距离JavaScript专家还很远,因此,这里发生的任何信息都将不胜感激。


问题答案:

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

Error: Template must have exactly one root element.

这是一个jsFiddle
不起作用(带有两个根元素),另一个不起作用。



 类似资料:
  • 问题内容: 根据API文档,伪指令的属性已弃用,因此将来,所有伪指令的行为都将使用当前默认值。 这消除了开发人员替换element指令的element的能力,而没有明显替代此功能的能力。 有关如何使用元素指令和不使用元素指令的示例,请参见此示例。 为什么不推荐使用此有用的属性而不进行替换? 问题答案: 在下一个主要的Angular版本中,将删除用于定义替换其所在元素的指令的标志。此功能具有难以理解

  • 问题内容: 我已经在端口8080(默认)下启动并测试了Tomcat。现在,我将连接器端口更改为80,然后重新启动了Tomcat,在最小的Debian 6.0安装中没有任何显示。现在,这里的窍门在哪里? 问题答案: 转到/ etc / default / tomcat6并更改为

  • 问题内容: 我正在使用JDBC连接到MySQL服务器(我认为没有连接池)。在连接网址中,我有 但是我的连接仍然超时。我什至检查了它的错误。但是,当我尝试使用连接时,出现以下异常。 我知道在Java 1.6中可以使用它来检查连接,但是我正在使用Java 1.5 有没有办法确保它不会超时?还是我必须升级到Java 1.6? 问题答案: 我有同样的问题,这绝对令人发疯。这是文档在MySQL网站上的内容(

  • 问题内容: 我正在使用ApplicationTestCase测试一个Android应用程序。我想模拟我的AsyncTasks之一(示例简化为显示问题): 因此,为了设置测试,我做了以下工作: 然后,实际测试如下: 但是运行时出现异常: 为什么模拟AsyncTask的技术不起作用? 请注意,在这种简单情况下,删除会导致问题消失,但是对于我的实际测试,我确实需要创建应用程序。 问题答案: AsyncT

  • 我正在尝试使用gradle运行Android版本。只要我不缩小,它就可以正常工作。当我启用minify(minifyEnabled true)时,构建总是失败,因为“无法为proguard.gradle.ProGuardTask生成代理类”。 gradle文件中我使用mini fy的部分: 只是需要一些帮助知道去哪里找...谢谢。 完整堆栈跟踪

  • 问题内容: 在下面的代码中,我试图使h1元素具有最高利润。当我在css中将位置设置为inline时,未显示上边距。但是,当我将其更改为inline-block时,它确实可以。我想知道是否有人可以解释为什么会这样。谢谢。 这是我的HTML: 这是CSS 问题答案: CSS2规范的9.2.4节规定: inline-block 此值使元素生成一个 内联级块容器 。内联块的内部被格式化为块框,元素本身被格