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
});

あなたはグーグルを介してjavascriptでコールバックを使用することについての多くのガイドを見つけることができます。

于 2013-02-11T07:29:26.577 に答える