2017-09-30 55 views
1

更新:这是一个吞咽问题,重新开始吞咽解决了问题。

我正在使用Angular,并试图创建一个自定义指令导航栏。不过,我收到以下错误:

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

我的模板文件只有一个路由元素和文件路径是正确的,我想不出还有什么地方出错了?由于

的index.html

<!DOCTYPE html> 
<html ng-app="bemoApp"> 
    <head> 
    <base href="/"> 
    <meta charset="utf-8"> 
    <title>Bemo</title> 
    <!-- inject:js --> 
    <!-- endinject --> 
    <!-- inject:css --> 
    <!-- endinject --> 
    </head> 
    <body> 
    <navbar></navbar> 
    <section ui-view></section> 
    </body> 
</html> 

JS /视图/指令/ navbar.html

<nav> 
    <ul> 
    <li><a ui-sref="register">Register</a></li> 
    <li><a ui-sref="login">Login</a></li> 
    </ul> 
</nav> 

JS /指令/ navbar.js

angular 
    .module('bemoApp') 
    .directive('navbar', navbar); 

function navbar() { 
    return { 
    restrict: 'E', 
    templateUrl: 'js/views/directives/navbar.html', 
    replace: true 
    }; 
} 

回答

1

尝试改变:

function navbar() { 
    return { 
    restrict: 'E', 
    templateUrl: 'js/views/directives/navbar.html', 
    replace: false 
    }; 
} 

有一些问题与更换,这样就可能解决您的问题。

+0

不幸的是,停止站点加载。 – Josh

+0

感谢您的帮助,我现在解决了这个问题。原来这是一个吞噬问题,它只是需要重新启动。 – Josh

相关问题