2

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

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

索引.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>

我该如何解决?

4

2 回答 2

5

这是由于您的指令正在呈现的 HTML ( nav.ng.html) 具有兄弟元素而不是包含所有元素的事实。

例如,这将导致错误:

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

这会很好:

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

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

于 2015-07-08T15:21:49.743 回答
1

您的nav.ng.html应如下所示:

<div>
  <div>test</div>
</div>

如果它不起作用?然后还将 index.html 更改为:

<body ng-app='checkApp' ng-controller='CheckCtrl'>
  <div>   
     <check-nav></check-nav>
  </div>
 </body>  
于 2015-07-14T13:38:03.267 回答