angularJs自定义指令不使用templateUrl

时间:2014-04-29 07:22:01

标签: angularjs angularjs-directive

我是AngularJs的新手。我正在编写我的自定义角度指令,其中包含一些html内容的模板。当我使用带有以下代码的模板时,它可以正常工作。

demoApp.directive('demoCarousel', function() {
  return {
    restrict: 'E',
    replace:'true',
    template: "<h1>This is from the custom directive..</h1>"
  };

});

但是当我用templateUrl替换模板指向部分内部的html时,我收到错误。

demoApp.directive('demoCarousel', function() {
  return {
    restrict: 'E',
    replace:'true',
    templateUrl: "/partials/carousel.html"
 };

});

javascript错误类似于:

  

错误:[$ compile:tplrt] http://errors.angularjs.org/1.2.15/ $ compile / tplrt?p0 = glassCarousel&amp; p1 =%2Fpartials%2Fcarousel.html

请让我知道我哪里出错了以及使用templateUrl的正确方法

注意:我在carousel.html文件中仅使用纯HTML代码。

1 个答案:

答案 0 :(得分:8)

error sais:Template for directive 'glassCarousel' must have exactly one root element. /partials/carousel.html

这意味着你的模板中有这样的东西:

<div>...</div>
<div>...</div>

不允许,你应该有一个根元素:

<div>
    <div>...</div>
    <div>...</div>
</div>