렌더링을 위해 다른 뷰 템플릿을 사용하는 몇 가지 컨트롤러 함수가 있습니다. 예상대로 작동하지만 컨트롤러 기능의 코드는 매우 유사하며 공통 함수로 리팩토링되기를 바랍니다. 그래서, 정말 뭔가를해야일반 뷰 템플릿을 함수 인수로 전달
def controller1() = Action {
// call some controller1-specific logic here
refactoredFunc(views.html.view1)
}
def controller2() = Action {
// call some controller2-specific logic here
refactoredFunc(views.html.view2)
}
def refactoredFunc(view: play.api.templates.Html) = {
// some common logic here
Ok(view)
}
위의 작품 (물론, 적어도 컴파일)
,하지만 난 그 필요가 없습니다 인공 제약 조건을 그대로 refactoredFunc
만 입력으로 Html
템플릿을 허용하는지 지정에 대한 불만이 거기있어.
play.api.templates.Html
을 play.api.templates.BufferedContent[_]
으로 바꾸려고했지만 컴파일러가 그 것을 좋아하지 않습니다.
그래서보기가 Html임을 강제하지 않고도이 작업을 수행 할 수있는 일반적인 방법이 있습니까?
감사합니다. 그게 내가 필요로하는 정확한 해결책이 아니었지만 (내 문제 설명을 지나치게 간소화 시켰습니다. 그 견해도 논점을 가지고있었습니다) 그것은 올바른 방향으로 나를 지적했습니다 : – ishaaq