2017-09-30 64 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

相關問題