我想知道是否有一种方法可以从胸腺网的内联语法中访问JavaScript对象。
我试图使用[[@{}]]
语法在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
的实际值,并让它正确地评估它?
发布于 2016-06-02 23:56:43
您可以提取这样的值:
var lessonId = [[${lesson.id}]];
var questionId = [[${question.id}]];
但我不知道这是否可行。如果您正在处理这些列表,则需要在js中提取它们,这意味着机器端的工作量是机器的两倍.有办法做到这一点,但可能与你想的几乎没有什么不同!关于如何管理弹出框以确认从列表中删除项的示例:
<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:
<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>
因此,您不会在js中呈现thymeleaf,但是在调用时会将值传递给函数。我想在你的情况下它看起来会是这样的:
<script th:inline="javascript">
function callLink(lessonID, questionID){
var fieldPathStr = lessonID+/*[[@{'/questions/'}]]*/"1/questions/2";
var finalStr = lessonID+fieldPathStr+questionID;
};
</script>
questionID和lessonID应该如下所示:
<a href="#" th:onclick="'javascript:callLink(\'' + ${lesson.id} + '\', \'' + ${question.id} + '\');'"></a>
希望这对你有用?
https://stackoverflow.com/questions/37594664
复制相似问题