Шаблон скорости - использование переменных скрипта Java в скорости foreach - PullRequest
0 голосов
/ 01 марта 2019

У меня есть, поэтому у меня есть эта карта в моей 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

});

Дело в том, что я не могу на самом делепередать var countryValue внутри цикла foreach для получения правильного значения с карты - $ 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 синтаксическая ошибка .Итак, вопрос: как я могу получить значения из карты, переданной контроллером, в зависимости от ключа, который находится в моем выборе?

1 Ответ

0 голосов
/ 02 марта 2019

Здесь есть большое недоразумение.

Код Javascript оценивается в браузере на стороне клиента, как только HTTP-запрос отправлен на сервер, а HTTP-ответ отправлен обратно в браузер..

Код Velocity оценивается на сервере при генерации ответа HTTP.

Таким образом, вы не можете смешивать переменные Javascript и Velocity.

Вам придется прибегнуть кAjax вызывает, если вы хотите получить определенные значения с сервера в событии Javascript.

...