我试图获得速度和传递的脚本并返回一个变量。
#set ( $test = "" )
...
<script>
var someVariable = '';
[some stuff happens and someVariable gets set]
#set ( $test = someVariable )
</script>
...
$test
上面的“ $ test”将打印出someVariable设置为的内容。
如何从脚本标签中导出变量并将其返回给速度模板以进行使用?
对于更多上下文,我一直在尝试通过遵循this来创建一个下拉列表宏。我希望能够使用保存的下拉菜单项,并使用它来修改我拥有的其他一些宏。
最佳答案
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"> </div>
另外,您将要确保您的JavaScript在after the DOM is fully loaded之前(或使用Atlassian特定的
AJS.toInit()
)才能运行。