2011-04-29 9 views
1

모델에서 I를 렌더링하는 템플릿에서 다음과 같은 선택을 렌더링합니다. $ {i}는 대부분의 장소에서 예상대로 i 값으로 대체됩니다. 그러나 $ {i}는 onchange 이벤트에서 대체되지 않습니다.

그래서,

<g:select class='setTagtypeValue-class' 
     name='tagtype-${i}-header' 
     from="${org.maflt.ibidem.Tagtype.list(sort:'tagtype').groupBy{it.tagtype}.keySet()}" 
     value="${setTagtypeValue?.tagtype?.tagtype}" 
     noSelection="${['null':'Select One...']}" 
     onchange="${remoteFunction(action:'options', update:'tagtype-options-${i}', 
        params:'\'tagtype=\' + this.value +\'&i=${i}\'')}" /> 

는 다음과 같이 표현됩니다 : 예를 들어, 이름이 있지만 난 onchange를에에 "TAGTYPE-0 헤더"로 설정되어 있음을
<select name="tagtype-0-header" onchange="jQuery.ajax({type:'POST',data:'tagtype=' + this.value +'&amp;i=${i}', url:'/ibidem/metadataSet/options',success:function(data,textStatus){jQuery('#tagtype-options-${i}').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){}});" class="setTagtypeValue-class" id="tagtype-0-header"> 
<option value="null">Select One...</option> 
<option value="abstract">abstract</option> 
. . . 
</select> 

공지 사항

점점

data:'tagtype=' + this.value +'&amp;i=${i}' 

또한이 템플릿을 생성 중에 사용하면 클라이언트 측에서는 대체가 발생합니다. 힌지가 예상대로 작동합니다. 그래서 유일한 문제는 편집하는 동안 서버 측에서 $ {i}가 onchange 이벤트 내에서 대체되지 않는다는 것입니다.

아이디어가 있으십니까?

답변

1

이미 내면이 ${}이므로 내면 ${}은 무시됩니다. 이것을 시험해보십시오 :

<g:select class='setTagtypeValue-class' 
    name='tagtype-${i}-header' 
    from="${org.maflt.ibidem.Tagtype.list(sort:'tagtype').groupBy{it.tagtype}.keySet()}" 
    value="${setTagtypeValue?.tagtype?.tagtype}" 
    noSelection="${['null':'Select One...']}" 
    onchange="${remoteFunction(action:'options', update:'tagtype-options-' + i, 
       params:'\'tagtype=\' + this.value +\'&i=' + i + '\'')}" /> 
+0

그 트릭입니다. 불행히도 다른 변경 사항을 피하기 위해 에 싸인 2 개의 선택 항목이 필요합니다. 그러나 그것은 작동합니다! –

관련 문제