簡體   English   中英

Velocity模板-在Velocity foreach中使用Java腳本變量

[英]Velocity template - using java script variables in velocity foreach

我有,所以我的ModelMap中有這張地圖,名為cityLocationCodes 我想訪問此地圖並根據當前用戶的選擇獲得價值。

我有這個javascript代碼:

<script>

function getCoutryValue(countrySelect) {
    var countryValue = countrySelect[countrySelect.selectedIndex].value;
    console.log(countryValue)

    return countryValue;
}

document.addEventListener('DOMContentLoaded', function () {
    var countrySelect = document.getElementById('country');
    var countryValue = getCoutryValue(countrySelect);
    console.log(countryValue);

    #foreach ($location in $cityLocationCodes.get(countryValue))
        console.log("$location.name");
    #end

});

問題是我不能真正在foreach循環內傳遞var countryValue來從地圖中獲取正確的值- $ cityLocationCodes.get(countryValue) -它不起作用。

我也嘗試了另一種方法-

    document.addEventListener('DOMContentLoaded', function () {
    var countrySelect = document.getElementById('country');
    var countryValue = getCoutryValue(countrySelect);
    console.log(countryValue);
    var cities = $cityLocationCodes;
    for (i = 0; i < cities.get(countryValue).length; i++) {
        console.log(cities.get(countryValue)[i].name);
    }

當我在Chrome瀏覽器中打開“源”時,它確實以某種方式看到了地圖,但是隨后出現Uncaught語法錯誤 所以問題是:如何根據我選擇的鍵從控制器傳遞的映射中獲取值?

這里有一個很大的誤會。

一旦將HTTP請求發送到服務器並將HTTP響應發送回瀏覽器,就可以在客戶端的瀏覽器中評估Javascript代碼。

在生成HTTP響應的同時,在服務器上評估Velocity代碼。

因此,您不能混合使用Javascript和Velocity變量。

如果要在Javascript事件中從服務器獲取特定值,則必須訴諸Ajax調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM