dojo/request
을 사용하여 서버에 다양한 요청을 제출하는 Dojo 클래스가 있습니다.Dojo 요청에서 작동하지 않는 Dojo aspect
해당 요청에 조언 전에 을 추가하려면 dojo/aspect
을 사용해야합니다.
docs은 비교적 이해하기 쉬운 것처럼 보입니다.
내 클래스 선언은 다음과 같은 :
'myPackage/MyClass':function(){
define("myPackage/MyClass", [
"dojo/request",
// etc. etc.
"dojo/aspect"
], function(request, ..., aspect) {
return declare("myPackage.MyClass", null, {
constructor: function(options){
aspect.before(dojo, "request",
function(url, args){
// TODO
alert("before advice applied");
}
);
},
// various functions that use dojo request
});
}
);
}
내 문제가 전 (before) advice가 실행되지 않습니다 것입니다.
나는 그런 this
을 대상으로 대신 dojo
, 또는 검사 할 때, xhr
을 직접 request
을 목표로하고에만 표시 기능 등 몇 가지 변종을 시도했습니다.
필자는 절망에 빠진 의사 페이지로 돌아가서 dojo
이라는 방법을 사용하여 "xhr"
메서드를 사용하여 우연히 내부적으로 호출 할 수는 없지만 전혀 작동하지 않는지 확인했습니다.
간과 한 점이 있을까요?
전과 조언 this
을 대상으로 실행하고 자주 사용하는 기능이되도록 내 코드를 수정 시도
편집.
뭔가 같은 : 앞 문장의 시간 복잡도를 가정, 내가 성가신 해결 방법을 사용하고 request
를 호출하는 각 기능에 대한 before
조언을 추가 할 수 있습니다 의미 상자에서 잘 권리를했다 aspect.before(this, "theFrequentlyUsedFunction",
그 기능에서 request
호출은 간단합니다.
필자의 결론은 Dojo request
호출 전에 조언을 적용 할 때 올바른 대상과 함수 이름을 참조하지 않는다는 것입니다. 그러나 이것이 작동하지 않는 이유는 여전히 당황 스럽습니다.
감사합니다, 그것은 아주 간단하고 (명백한의 종류)와 함께 작동주의 : 당신이, this.request''에 request''에 전화를 리팩토링 할 필요가 조언을 적용하라. – Mena
도와 드리겠습니다. 불행히도 나는'request'가 정의의 팩토리 함수의 범위에서 인수로만 존재할 때까지는 현재 다른 방법으로는 작동하지 않습니다. –