AngularJs中directive的templateUrl Template for directive 'shows' must have exactly one root element. views/manager/show.html

郁极风 发布于 2014/11/27 17:15
阅读 7K+
收藏 0

在使用AngularJs中directive的templateUrl定义一个页面的时候出现了,可是我在页面中定义了根元素Template for directive 'shows' must have exactly one root element. views/manager/show.html

下面的代码

AngularJs中directive:

managerApp.directive('shows', function() {
    return {
        restrict: 'E',
        templateUrl: 'views/manager/show.html',
        replace: true
    };
});



html:

<shows><div></div></shows>



view/manager/show.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<div>fff</div>



求帮助。/kelian

加载中
0
YueZheng
YueZheng

模板里为什么要加“DOCTYPE”?

我实验了下,去掉DOCTYPE就运行OK了。

这个报错的原因貌似还挺复杂,跟html解析过程有关。

郁极风
郁极风
我把那个去掉了还是不行。泪奔了。/dk
0
YueZheng
YueZheng

引用来自“YueZheng”的评论

模板里为什么要加“DOCTYPE”?

我实验了下,去掉DOCTYPE就运行OK了。

这个报错的原因貌似还挺复杂,跟html解析过程有关。

你更新下Angular的版本试下。我用的是1.2.16
0
黑土豆
黑土豆
问题的关键在这儿  root element.  模板的html结构必须要有个根节点,如下面这个是错误的
<div>内容1</div>
<div>内容2</div>

但是修改成这样就好了:

<div>
   <div>内容1</div>
   <div>内容2</div>
</div>





0
krui
krui
我将replace设置成true就报这个错,设置成false就能正常使用
返回顶部
顶部