2014-08-31 3 views
0

Twirl 템플릿에 대해 Play 프레임 워크의 일부로 배우기 시작했습니다. 누군가 템플릿에서 여러 매개 변수 그룹의 의미를 더 잘 설명 할 수 있는지 궁금합니다.Twirl 템플릿의 여러 매개 변수 그룹

필자는 하나의 매개 변수 집합 (일반적으로 첫 번째?)이 나 자신을 제공 할 것으로 알고 있습니다. 또한 암시 적 매개 변수가 마지막에 나열된 것으로 나타났습니다.

제 튜토리얼의 경우 (content: Html)이라는 두 번째 매개 변수 그룹에서 사용 방법을 잘 모릅니다.

지금 당장은 Twirl이 부분적으로 매개 변수를 적용하는 세 단계 (사용자, 내부 및 암시 적)로 진행되는 것으로 파악됩니다. 나는 그것에 관한 길 일 수 있었다, 누군가 나를 곧게했다!

답변

1

Twirl 템플릿이 스칼라 함수로 컴파일된다는 것을 상기하자. 스칼라 함수는 여러 매개 변수 그룹을 가질 수 있으므로 Twirl 템플릿도 사용할 수 있습니다. 실제로 이것은 익명의 함수로 더 많은 인자를 전달하는 구문적인 설탕입니다. 예를 들면 다음과 같습니다.

위와 같이 결과는 동일하지만 두 번째 경우의 호출 구문은 "좋음"입니다.

일반적으로 implicits는 마지막 그룹에 지정됩니다.

그래서, 당신은 같은 제목 선이있는 템플릿 views.html.foo 가지고있는 경우 : 당신은 같은 그것을 호출하는

@(title: String)(content: Html) 

이 그냥 쉽게 만드는 :

Ok(views.html.foo("Title") { /* generate some html */ }) 

을 당신 말했다 :

저는 Twirl이 부분적으로 매개 변수를 적용하는 세 단계를 거친 것으로 생각하고 있습니다. 내부 및 암시 적. 나는 그것에 관한 길 일 수 있었다, 누군가 나를 곧게했다!

네, 그렇습니다. :) 인수는 그룹으로 평가되지만 생성 된 함수가 호출되기 전에 모두 발생합니다. 위와 같은 구문론적인 설탕으로 생각하십시오.