1

我有一个 javascript 函数,它返回一个值。我需要在我的速度模板的变量中获取这个值,有人可以帮帮我。下面是我正在尝试的代码。我知道这是不正确的 我没有得到价值

<script type="text/javascript">
function getCurrentUserTime(key)
{
var user;
     $.ajax({
        url: "/rest/1.0/compute/TST-30",
        type: 'get',
        dataType: 'json',
        async: false,
        success: function(data) {
            user = data.sla;
        } 
     });
     return user[0].remainingTime;
}
</script>

$key="test"
#set($time=getCurrentUserTime('$key'))
$time
4

1 回答 1

0

问题是该函数试图在 ajax 调用完成之前返回 user[0].remainingTime。我建议您使用回调处理返回值:

function getCurrentUserTime(key, callback) {
    var user;
    $.ajax({
        url: "/rest/1.0/compute/TST-30",
        type: 'get',
        dataType: 'json',
        async: false,
        success: function(data) {
            user = data.sla;
            if(callback && typeof callback === 'function') {
                callback(user[0].remainingTime);
            }
        } 
    });

}

getCurrentUserTime('$key', function(val) {
    // handle val
});

您可以通过 google 找到很多关于在 javascript 中使用回调的指南。

于 2013-02-11T07:29:26.577 回答