2016-06-02 4 views
0

thymeleaf의 인라인 구문 내에서 JavaScript 개체에 액세스하는 방법이 있는지 궁금합니다.JS + Ajax + Thymeleaf - thymeleaf 컨텍스트에서 JS 값 액세스

JavaScript에서 [[@{}]] 구문을 사용하여 URL을 작성하려고합니다. 그러나 URL 내부에서 JS 변수에 액세스해야합니다. 여기

코드입니다 :

var fieldPathStr = /*[[@{{lessonId}/questions/{questionId}(lessonId=${lesson.id}, questionId=question.id)}]]*/"1/questions/2"; 

는 구체적으로는 JS 변수 인 question.id을하지만 그것은 (명백하게)대로 최종 URL을 생성합니다

1/questions/question.id

거기인가 이 할당 문을 구조화하여 실제 값인 question.id을 얻고 올바르게 평가할 수 있습니까?

답변

0

이 같은 값을 추출 할 수 있습니다 :

var lessonId = [[${lesson.id}]]; 
var questionId = [[${question.id}]]; 

하지만 난 갈 수있는 방법이 있는지 모르겠습니다. 리스트 작업을한다면, 머신 사이드에서 두번 작업하는 것을 의미하는 js로 추출해야합니다 ... 할 수있는 방법이 있지만 생각했던 것과는 조금 다릅니다! 나는 목록에서 항목의 제거를 확인하기 위해 내 팝업 상자 관리 방법의 예 :

<a class="btn btn-default btn-sm" href="#" th:onclick="'javascript:deleteObject(\'' + ${vozilo.vin} + '\');'"><i class="glyphicon glyphicon-remove"></i><span th:text="#{rad.obr}">Radnja - izbrisi</span></a> 
이 일단

<script th:inline="javascript"> 
    function deleteObject(id) { 
     bootbox.confirm([[#{msg.ask}]], function(result) { 
      if (result) { 
       var url = /*[[ @{'/admin/vozila/izbrisi?vin='} ]]*/ "genericUrl"; 
       url = url+id; 
       document.location = url; 
      } 
     }); 
    }; 
</script> 

완료, 당신이 필요로하는 모든이를 호출하고 개체 ID를 전달하는 것입니다

그래서 jym의 내부에서 thymeleaf가 렌더링되지는 않지만 호출 될 때 값을 함수에 전달합니다. 나는 다음과 같이 보일 것입니다 귀하의 경우에는 추측이 당신을 위해 작동

<a href="#" th:onclick="'javascript:callLink(\'' + ${lesson.id} + '\', \'' + ${question.id} + '\');'"></a> 

희망 : questionID 및 lessonID는 다음과 같이한다

<script th:inline="javascript"> 
function callLink(lessonID, questionID){ 
var fieldPathStr = lessonID+/*[[@{'/questions/'}]]*/"1/questions/2"; 
var finalStr = lessonID+fieldPathStr+questionID; 
}; 
</script> 

?

+1

아마도 작동 할 것입니다. 나는 왜 내가 ID를 채우는 것을 생각하지 않았는 지 잘 모르겠다. 아주 쉬운 수정 ... 어리석은 나를 – Trevor

+0

우리는 모두 거기에 있었다! :디 – Blejzer