2013-08-29 4 views
0

내 뷰에서 동적으로 변경되는 속성을 구현하기 위해 Grails에서 올바른 기능의 올바른 방향으로 나를 가리킬 수 있습니까? 예를 들어 도메인 클래스의 인스턴스가 특정 워크 플로 단계에있는 경우 특정 필드 프롬프트, 버튼 레이블 및 데이터 수정 기능을 해당 단계에만 적용해야합니다. 이 속성을 다른 도메인 클래스에 저장 하겠지만, 데이터 인스턴스에서 edit 메소드를 실행할 때 어떻게 적용해야할지 모르겠습니다. 그것은 커스텀 태그가 들어 왔는가 아니면 내 뷰의 모든 속성을 변수 태그로 대체하고 컨트롤러에서 값을 전달 하는가? 나를 시작하게하는 검색어는 괜찮습니다. 감사.Grails에서 동적 뷰 속성을 구현하는 방법

+1

그냥'model' 매개 변수로 전달하십시오. –

답변

0

답장을 보내 주셔서 감사합니다. @micha. 특히, 페이지의 시각적 측면 (보기)을 동적으로 변경하는 것이 가장 좋은 방법인지 궁금합니다. 나는 동적으로 비계를 맺은 영역의 견해를보고 내 질문에 대답했다고 생각합니다. 예를 들어, 필드 프롬프트는 모든 형태입니다

<label for="last"> 
    <g:message code="employee.last.label" default="Last" /> 
</label> 

그래서 당신은 모든 프롬프트 컨트롤러/서비스, 또는 데이터베이스에서이를 조회 할 필요 계산하고 데이터와 함께 그들에 전달할 수 있습니다 그것은 들판으로 간다. Grails가 이러한 필요성을 예상하고 아키텍처의 특정 측면을 쉽게 이해할 수 있었는지 확인하고있었습니다.

1

컨트롤러 동작 내에서 모델 (지도)을 반환 할 수 있습니다. 이 모델의 데이터 뷰에서 읽을 수 있습니다 : 뷰 내에서

class MyController { 
    def test() { 
    return [myData: 'hello', myOtherData: 42] 
    } 
} 

당신이 다음과 같은 방식으로 모델에 액세스 할 수 있습니다

... 
<h1>${ myData }</h1> 
<g:if test="${ myOtherData == 42}"> 
    <p>${ myOtherData }</p> 
</g:if> 
... 

당신이에서 모델과 다른보기를 반환하려면

render view: 'myview', model: [myData: 42] 

은 자세한 내용은 Grails의 문서에서 섹션 Models and Views을 참조하십시오 컨트롤러는 렌더링 방법을 사용할 수 있습니다.

관련 문제