Вызов функции JavaScript в цикле

У меня есть скрипт геозоны, который я использую на странице cfm:

<cfscript> 
 function getDistance(loclat, loclon, fencelat, fencelon, units = 'kilometers')
 { 
    // earth's radius. Default is miles.
    var radius = 3959;
    if (arguments.units EQ 'kilometers' )
        radius = 6371;
    else if (arguments.units EQ 'meters')
        radius = 6371393;
    else if (arguments.units EQ 'feet')
        radius = 20903520;

    var toRad = pi() / 180;
    var dLat = (fencelat-loclat) * toRad;
    var dLon = (fencelon-loclon) * toRad; 
    var a = sin(dLat/2)^2 + cos(loclat * toRad) * cos(fencelat * toRad) * sin(dLon/2)^2; 
    var c = 2 * createObject("java","java.lang.Math").atan2(sqr(a), sqr(1-a));

    return radius * c;

 }
</cfscript>

Затем я запрашиваю свою таблицу геозон и выходные списки для тех записей, где геозоны были установлены для конкретного устройства. Когда запрос геозоны возвращает несколько записей, cfoutput зацикливает эти записи и как код внутри cfoutput вызывает функцию js Я получаю сообщение об ошибке, сообщающее, что функция была вызвана 2 раза в одном шаблоне.

Я "предполагаю", что решение состоит в том, чтобы поместить саму функцию скрипта внутри cfoutput и сделайте имя функции уникальным, добавив для каждого идентификатора записи идентификатор записи. Это правильное решение?

Если это так, у меня вопрос, как я могу динамически добавить идентификатор записи к имени функции в cfscript? Например:

function getDistance#recid#(loclat, loclon, fencelat, fencelon, units = 'kilometers')

Затем, когда я вызываю значение функции, выведите

<cfif #fence_meter_radius# gt #getDistance(loclat, loclon, latitude, longitude, 'kilometers')#>

Я приветствую любую помощь с вышеуказанным.

0 ответов

Другие вопросы по тегам