2012-04-26 4 views
3

Sencha Touch 2.0.0 사용하기 클래스의 동작을 무시하려고합니다.오버라이드가 오류로 인해 실패합니다

Ext.define('MP.service.Override', { 
    extend: 'Ext.Base', 
    override: 'Ext.Ajax', 

    request: function(cfg) { 
     console.log('overriden'); 
     this.callOverridden(arguments); 
    } 
}); 

내가 콘솔에서이 오류를 얻을 :
나는이 docs 다음 코드이 forum post on the subject
그러나 다음하고 어떤 도움이 많이 주시면 감사하겠습니다

Uncaught TypeError: Object [object Object] has no method 'override' 

답변

0

Ext.Ajax 클래스는 Ext.data.Connection 클래스의 싱글 톤 인스턴스이므로이 방법으로 재정의 할 수 없습니다.

'적절한'덮어 쓰기를 작성하지 않고 싱글 톤의 기능을 바꿀 수 있습니다.

한 가지 방법은 다음을 수행하는 것입니다 :

Ext.Ajax.request = Ext.Function.createInterceptor(Ext.Ajax.request, function(){ 
    console.log('override'); 
}); 

이 가진 유일한 문제는 당신이 단지 전에 원래의 기능을 새 코드 를 추가 할 수 있지만, 유사한 기술이 문제의 둘레에 당신을 얻을 수 있다는 것입니다.

관련 질문은 여기에서 찾을 수 있습니다. sencha touch override ext.ajax

관련 문제