หน้าเว็บ

วันอังคารที่ 20 พฤษภาคม พ.ศ. 2557

Proxy handle ajax response primefaces : javascript

บางที เราอาจจะอยาก modify response หรือทำอะไรบางอย่าง ก่อนที่ primefaces ajax จะทำงานเสร็จ
PrimeFaces.ajax.AjaxUtils.handleResponse = (function(originMethod) {

    //return proxy method instead origin method
    return function() { 

        //origin method evironment/instance context

        return originMethod.apply(this, arguments); //
    };
})(PrimeFaces.ajax.AjaxUtils.handleResponse);
ตัวอย่างเช่น การ handle validate response
/**
 * call when ajax response validate failed
 */
function validationFailedHandle() {
    //do something...
}

var handleProxy = function(originMethod) {
 
    var slice = Array.prototype.slice;
 
    return function() {
        var args = slice.call(arguments);
        var response = args[0].find('extension').text();
        if (response) {
            var obj = JSON.parse(response);
            obj.validationFailed && validationFailedHandle.apply(this, args);
        }
 
        return originMethod.apply(this, args);
    };
};
 
PrimeFaces.ajax.AjaxUtils.handleResponse = handleProxy(PrimeFaces.ajax.AjaxUtils.handleResponse);

ไม่มีความคิดเห็น:

แสดงความคิดเห็น