jquery - 使用 Ajax 填充 Thymeleaf div 的下拉列表
问题描述
我有一个这样的 div
<div class="col-sm-4" id="notebooksDropdown">
<select class="form-control" id="notebooks" name="notebooks">
<option th:each="notebook : ${notebooks}" th:value="${notebook}" th:text="${notebook}"></option>
</select>
</div>
我打了一个ajax调用来获取这样的笔记本
$.ajax({
type: "GET",
contentType: "application/json",
url: "/getNotebooks",
...
success: function (data) {
...
//notebooks is the array with which I wish to populate the dropdown
//this works fine
for(i in notebooks){
var options="<option value="+notebooks[i]+">"+notebooks[i]+"</option>";
$(options).appendTo('#notebooks');
}
}
但是,在 ajax 中以某种方式设置 $notebooks 之后,我是否无法刷新下拉 div 标记,以便选项由 th:each 而不是我正在执行的方式填充。就像是:
//set $notebooks so the dropdown div can do its thing -> ??
//then refresh only that div
$( "#notebooksDropdown" ).load(window.location.href + " #notebooksDropdown" );
我是一名后端 Java 开发人员,对(js、jquery、thymeleaf)非常陌生,所以任何帮助都很有价值。
解决方案
${notebooks} 是 thymeleafs 的 request.getAttribute("notebooks") 方式。我们知道在页面本身编译期间在服务器端得到解决,所以回答我的问题是我们不能在客户端 js 中填充/更改/(甚至访问)$ 变量。