2012-05-16 2 views
6

스칼라로 Play 2.0을 배우려고하는데 플레이 2.0 템플릿 시스템이 어떻게 작동하는지 잘 모르겠습니다. 나는 이전에 1.2 게임을 사용했고 # {include 'views'/ blah.html '/}와 동등한 것을 찾고 있습니다. 기본적으로 모든 페이지에 렌더링되는 탐색 막대를 만들려고합니다.에 scala.html 파일이 포함되어 있습니다. 2.0 scala

기본적으로 main.scala.html의 난이

내 index.scala.html에서

@(title: String)(navbar: Html)(content: Html) 

<!DOCTYPE html> 

<html> 
    <head> 
    <title>@title</title> 
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")"> 
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")"> 
    <script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script> 
    </head> 
    <header> 
    This is my header 
    </header> 
    <section class="navbar">@navbar</section> 
    <section class="content">@content</section> 
    <footer> 
    This is my footer 
    </footer> 
: task.scala.html에서

@navbar = { 
<h1>Index</h1> 
<ul> 
    <li> 
     <a [email protected]>Tasks</a> 
    </li> 
</ul> 
} 
@main("Home")(navbar){ 
    content 
} 

:

@(tasks: List[Task], taskForm: Form[String]) 
@import helper._ 
@main("Home") { 
<h1>Index</h1> 
<ul> 
    <li> 
     <a [email protected]>Tasks</a> 
    </li> 
</ul> 
} { 
    task code 
} 

이제 이것을 포함 시키려면 na 그것은 내가 모든 페이지에이 navbar 하드 코드해야 할 것이라고 모든 방법이 모든 페이지에서 반복해야합니다 vbar 보인다. 모든 페이지에 전체 탐색 모음을 작성하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

나는 또한

<h1>Index</h1> 
<ul> 
    <li> 
     <a [email protected]>Tasks</a> 
    </li> 
</ul> 

를 포함하는 navbar.scala.html 파일을 생성하고 뷰에서 절약 노력했다

/다음 내가 '라는 오류가 @import views.navbar를 사용하지만 네비게이션 바는 뷰의 멤버가 아닌 것을 가져 오기를 '. 필자가 Eclipse Java EE IDE 인디고에서 도움이된다면이 글을 쓰고있다.

답변

7

망가 가져하지만 그냥 전화 :

@navbar() 
+0

내가 '@navbar'는이 표시 사용 BaseScalaTemplate ([email protected]은), 대신 실제 navbar.scala.html – Darbs

+0

당신은 우리 코드 보일 수 있는가? – Somatik

+0

오 예, 아마도 괄호를 추가해야 할 것입니다. 나는 내 대답을 편집했다. –

0

또 다른 뷰 템플릿에 템플릿을 다른 뷰를 포함하려면 당신 간단한 사용하여 호출 @views.html.[location].[location].[location]()은 [위치] 잠시 휴식입니다

경우 그것의 길 아래로. 예를 들어

:

@views.html.users.interface() 

것은 그것이 어떤 매개 변수를 사용하지 않는 경우 명령문의 끝에서 '()'즉, 괄호를 넣어주십시오. "()"가 없으면 다음과 같은 오류 메시지가 표시됩니다. "BaseScalaTemplate (play.api.templates ...)"

템플릿에 매개 변수가있는 경우 호출 할 때 해당 매개 변수를 포함해야합니다 이 :

@views.html.users.interface("name") 
관련 문제