[SCALA] 와 마찬가지로 play2의 스칼라 템플릿에 변수를 선언
SCALA와 마찬가지로 play2의 스칼라 템플릿에 변수를 선언
당신은 어떻게 선언과 마찬가지로 play2 스칼라 템플릿에 로컬로 사용되는 변수를 초기화 할 수 있습니까?
내가 이거 가지고있어:
@var title : String = "Home"
템플릿의 맨 위에 선언, 그러나 그것은 나에게 오류를 제공합니다 :
illegal start of simple expression """),_display_(Seq[Any](/*3.2*/var)),format.raw/*3.5*/(""" title : String = "Home"
해결법
-
==============================
1.
@defining("foo") { title=> <div>@title</div> ... }
기본적으로, 당신은 당신이 그것을 사용하려고하는 블록을 포장해야
-
==============================
2.그것은만큼 당신이 나중에 변수의 값을 변경하려고하지 않는 한되지 않은 사실, @의 c4k의 솔루션은 작동하고 (아주 편리)?
그것은만큼 당신이 나중에 변수의 값을 변경하려고하지 않는 한되지 않은 사실, @의 c4k의 솔루션은 작동하고 (아주 편리)?
당신은 단순히 템플릿의 상단에있는이 장소 :
@yourVariable = {yourValue}
그것은 더 복잡한 표현 인 경우 또는, 당신은이 작업을 수행 :
@yourVariable = @{yourExpression}
당신은 그런 목록 같은 것들로 작업 할 수 있습니다 :
@(listFromController: List[MyObject]) @filteredList = @{listFromController.filter(_.color == "red")} @for(myObject <- filteredList){ ... }
주어진 예를 들어,이 것
@title = {Home} //this should be at beginning of the template, right after passing in parameters <h1> Using title @title </h1>
코멘트에서 당신은 HTML 형식으로 입력됩니다 있다고 말했다. 다시 @title 덮어 쓰기를 시도하는 경우 그러나, 그것은 단지 관련이없는가요?
-
==============================
3.스칼라 템플릿이 지원, 당신은 템플릿에 변수를 정의 할 수 있습니다
스칼라 템플릿이 지원, 당신은 템플릿에 변수를 정의 할 수 있습니다
@import java.math.BigInteger; var i=1; var k=1
당신은 템플릿의 값을 변경하려는 경우
@{k=2}
예
@(title:String)(implicit session:play.api.mvc.Session) @import java.math.BigInteger; var i=1; var k=1 ^ <div id='LContent_div@i'> ^ <div id='inner_div_@k'></div> ^ </div>
-
==============================
4.당신은 그냥 일반적으로 기본 값으로 뷰의 PARAM을 선언 할 수 있습니다 이러한 경우에 당신은 전체 템플릿이 가능해야합니다 + 당신이에서를 변경 가능성을하겠습니다 virtualeyes '솔루션은 적절한 하나이지만, 다른 가능성도 있습니다 컨트롤러 :
당신은 그냥 일반적으로 기본 값으로 뷰의 PARAM을 선언 할 수 있습니다 이러한 경우에 당신은 전체 템플릿이 가능해야합니다 + 당신이에서를 변경 가능성을하겠습니다 virtualeyes '솔루션은 적절한 하나이지만, 다른 가능성도 있습니다 컨트롤러 :
@(title: String = "Home page") <h1>Welcome on @title</h1>
제어 장치:
def index = Action{ Ok(views.html.index("Other title")) }
당신이 그 (것)들에게 각 시간을 추가해야하므로 자바 컨트롤러, 템플릿 '기본값을 인식하지 않습니다 :
public static Result index(){ return ok(views.html.index.render("Some default value...")); }
-
==============================
5.당신이 @defining 모든 콘텐츠를 포장하지 않으려면, 당신은이 작업을 수행 할 수 있습니다 :
당신이 @defining 모든 콘텐츠를 포장하지 않으려면, 당신은이 작업을 수행 할 수 있습니다 :
@yourVariable = { yourValue }
@defining 지시어는 템플릿에 정말 읽을 수 ...
-
==============================
6.아주 깨끗한 모양과 때때로 선호 될 수있는 하나 확실한 해결책이있다 : 이런 식으로, 당신이 필요로하는 HTML 코드를 생성 범위를 템플릿 주위에 범위를 정의 그것의 내부에 변수를 정의하고 보자
아주 깨끗한 모양과 때때로 선호 될 수있는 하나 확실한 해결책이있다 : 이런 식으로, 당신이 필요로하는 HTML 코드를 생성 범위를 템플릿 주위에 범위를 정의 그것의 내부에 변수를 정의하고 보자
@{ val title = "Home" <h1>Welcome on {title}</h1> }
이것은 몇 가지 단점이 있습니다 :
생성 된 코드 :
... Seq[Any](format.raw/*1.1*/("""<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Basic Twirl</title> </head> <body> """),_display_(/*9.10*/{ val title = "Home" <h1>Welcome on {title}</h1> }),format.raw/*15.10*/(""" """),format.raw/*17.5*/("""</body> </html>""")) } } } ...
-
==============================
7.돌리기 템플릿에서 나는 때문에 정의 블록을 사용하는 것이 좋습니다
돌리기 템플릿에서 나는 때문에 정의 블록을 사용하는 것이 좋습니다
@random = @{ new Random().nextInt } <div id="@random"></div> <div id="@random"></div>
여러 번 사용할 때 서로 다른 값을 초래할 것입니다!
@defining(new Random().nextInt){ random => <div id="@random"></div> <div id="@random"></div> }
-
==============================
8.
@isExcel= {@Boolean.valueOf(java.lang.System.getProperty(SettingsProperties.isExcel))}
from https://stackoverflow.com/questions/12031146/declare-variable-in-a-play2-scala-template by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 불꽃의 RDD을 바꾸어하는 방법 (0) | 2019.11.04 |
---|---|
[SCALA] 불변 쌍 객체 인스턴스화 (0) | 2019.11.04 |
[SCALA] 목록에서 (codegeneration없이) 튜플을 만들 수있는 방법이 있습니까? (0) | 2019.11.04 |
[SCALA] 스파크 쉘을 사용할 때 SparkContext가 sparkConf.set (...)를 사용하여 정의 (0) | 2019.11.04 |
[SCALA] 스칼라에서 마우스 오른쪽 연관 방법이 무슨 소용인가? (0) | 2019.11.04 |