javascript - 错误 : [$compile:tplrt] Template for directive 'checkNav' must have exactly one root element

标签 javascript angularjs meteor angular-meteor

我使用 meteor+angular,我想在指令中使用 templateUrl 来包含 nav.ng.html
但我抛出一个错误

Error: [$compile:tplrt] Template for directive 'checkNav' must have exactly one root element  

index.html:

 5 <body ng-app='checkApp' ng-controller='CheckCtrl'>
 6   <check-nav></check-nav>
 7 </body>  

指令.js

  1 angular.module 'checkApp'
  2   .directive 'checkNav', () ->
  3   ┊ restrict: 'E'
  4   ┊ replace: true
  5   ┊ templateUrl: 'client/templates/check-views/nav.ng.html'

导航.ng.html

<div>test</div>

我该如何修复它?

最佳答案

这是因为您的指令正在呈现的 HTML (nav.ng.html) 具有同级元素,而不是包含所有元素的元素。

例如,这将导致错误:

<div>One</div>
<div>Two</div>

这样就好了:

<div>
    <div>One</div>
    <div>Two</div>
</div>

所以您应该将 HTML 修改为只有一个根元素,这样错误就会消失。

关于javascript - 错误 : [$compile:tplrt] Template for directive 'checkNav' must have exactly one root element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296850/

相关文章:

javascript - Angular 正则表达式测试输入的 ng-pattern 验证不一致

javascript - 如何使用 AngularJS 动态加载数据生成 PDF?

jquery - meteor 和羊驼形态

javascript - 如何在 Material UI 中更改 Toggle Switch 的大小

AngularJS 将逻辑放在服务中而不是 Controller 中,最佳实践

javascript - 在 native react 中更新/更改状态对象的最佳方法?

javascript - 如何使用 Iron Router 在 Meteor 中生成 XML 文件

node.js - 路线未加载组件

javascript - 从 javascript 对象向 html 中的表格行添加元素

javascript - 如何标准化日期年份,即从 2 位数转换为 4 位数 Javascript