我正在使用AngularJS作为Play 2.0应用程序的前端。我松散地遵循了Paul Dijou的博客文章来设置HTML5路由。基本上,Play框架为每个未知路由提供index.html
文件,然后AngularJS路由接管。
在我的应用程序中,我已将导航栏移动到指令中。当我最初加载我的应用程序时,这工作正常。但是,当我在"更深入"地导航到我的 Angular 应用程序后进行刷新时,Angular 为我的"导航栏指令"抛出了一个Invalid Template Root
错误。正如您在下面看到的,该模板只有一个根元素,就像需要的那样。
我已经检查了这个问题,但我使用的是templateUrl
属性。
Plunker(内容已剥离,但其他方面准确)
谁能告诉我我做错了什么?
命令:
myDirectives.directive("navbar", function() {
return {
restrict : "E",
replace : true,
templateUrl : "assets/app/partials/navbar.html"
};
});
模板(navbar.html
):
<div ng-controller="NavbarCtrl">
<nav class="navbar navbar-fixed-top">
... (There is more content here but the problem occurs even if this content is removed)
</nav>
</div>
尝试将相对模板网址替换为绝对网址:
// Note the leading '/'.
// You could also try a full URL, although that makes development hard.
templateUrl : "/assets/app/partials/navbar.html"