3
ADVANCED_OPTIMIZATIONS가있는 클로저 컴파일러를 사용할 때 jQuery.ajax.data 객체가 변경되었습니다.폐쇄 컴파일러를 사용할 때 jQuery.ajax.data 객체를 보존하는 방법은 무엇입니까?
$.ajax({
type: "POST",
url: "ajax.php",
data: {
act : "some"
},
success : function(data){}
});
jQuery.ajax.data 객체가 {L : "some"}
로 변환됩니다.
'act' : "some"
과 같이 따옴표를 사용할 수 있지만 따옴표없이 일하기. 내 externs 파일에 있습니다 :
/** @type {Object.<string,*>} */ jQuery.ajax.data;
하지만이 작동하지 않습니다. 폐쇄 컴파일러 버전 1043
당신은 폐쇄를하지 말 따옴표가 필요합니다 재산 이름을 mangle. 이것은 필수 사항입니다. 따옴표 없이도 작업을 수행 할 수는 없습니다. –
extern 파일이 올바르지 않습니다. 'jQuery.ajax.data'는'jQuery.ajax' 아래의'data' 속성을 의미합니다. 'jQuery.ajax' (함수)에'data' 속성이 없습니다. 'data'는 인자로'jQuery.ajax'에 전달 된 객체의 속성입니다. 당신은 잘못된 것을 "내재화"하고 있습니다. –
그러나 다음과 같이하면 :'var foo = {}; extern 파일에서 Closure는 "act"(또는 "foo"라고하는 임의의 변수)라는 이름을 ** ALL ** 오브젝트 *에 * 포함하여 이름을 바꿀 수 없습니다. "데이터"속성에 전달 된 개체 해시에서. 그러나 "act"라는 모든 속성은 원하는 경우에도 이름이 변경되지 않습니다! –