2015-12-02 122 views
1

我想要獲取速度和腳本來傳入並返回一個變量。在速度模板中訪問jquery/javascript變量

#set ($test = "") 
... 
<script> 
    var someVariable = ''; 
    [some stuff happens and someVariable gets set] 
    #set ($test = someVariable) 
</script> 
... 
$test 

而上面的'$ test'會打印出任何someVariable設置爲。

如何從腳本標記中導出變量並將其返回到速度模板以使用?

欲瞭解更多的上下文,我一直試圖通過遵循this匯合創建一個下拉宏。我希望能夠使用保存的下拉項目並使用它來修改我擁有的其他宏。

回答

1

Velocity是服務器端編譯的模板語言,而JavaScript是在客戶端執行的。當您的JavasScript運行時,Velocity代碼已經被編譯,轉換成HTML併發送到客戶端,因此您無法直接執行您想要的操作。

相反,您將需要直接修改DOM。例如,使用jQuery:

... 
<script> 
    var someVariable = ''; 
    [some stuff happens and someVariable gets set] 
    jQuery(".myClass").text(someVariable); 
</script> 
... 
<div class="myClass">&nbsp;</div> 

此外,你將要確保你的JavaScript不運行,直到after the DOM is fully loaded(或使用Atlassian的特定AJS.toInit()的)。