2014-01-31 2 views
1

내 Play 2.0 응용 프런트 엔드에 AngularJS를 사용하고 있습니다. Paul Dijou의 blog post을 따랐다가 HTML5 라우팅을 설정했습니다. 기본적으로 Play 프레임 워크는 알 수없는 모든 경로에 대해 index.html 파일을 제공하며 AngularJS 라우팅이 대신 사용됩니다."잘못된 템플릿 루트"오류입니다.

내 응용 프로그램에서 내 탐색 모음을 지시문으로 이동했습니다. 이것은 처음에 응용 프로그램을로드 할 때 제대로 작동합니다. 그러나 Angular가 내 "navbar 지시어"에 대해 Invalid Template Root 오류를 던졌습니다. 아래에서 볼 수 있듯이 템플릿에는 필요한 경우 정확히 하나의 루트 요소 만 있습니다.

이미 question을 확인했지만 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> 
+0

navbar.html 소스 표시 – Stewie

+0

jsFiddle과 같은 것을 사용하여 별도로 이것을 다시 만들 수 있습니까? 더 많은 일이 벌어지고있는 것 같지만,이 코드에서 어떤 문제가 있는지 즉시 알 수는 없습니다. – Josh

+0

@Stewie 이미'navbar.html' 소스에서 발췌 문장을 포함 시켰습니다. 모든 태그가 닫혀 있고 뒤 공백이 없음을 다시 확인했습니다. – muenchdo

답변

2

절대 하나와 상대 템플릿 URL을 교체하십시오 :

// Note the leading '/'. 
// You could also try a full URL, although that makes development hard. 
templateUrl : "/assets/app/partials/navbar.html" 
,536,
+0

고마워, 그게 문제를 해결! – muenchdo

관련 문제