2014-06-12 3 views
0

ExtJS 4에서는 그리드 패널에 스페이스 바 토글 선택을 도입했습니다. 나는 onKeyPress를 재정의하고 이것을 비활성화 할 수 있기를 원합니다. (나는 enableKeyNav를 비활성화하고 싶지 않다.)ExtJS에서 Ext.selection.RowModel을 오버라이드하는 방법 4

나는 시도했다.

//This didn't work.... 
Ext.override('Ext.selection.RowModel', { 
    onKeyPress: function(e, t) { 
     console.log(e); 
    } 
}); 
//This also didn't work... 
Ext.define('MyApp.selection.RowModel', { 
    override: 'Ext.selection.RowModel', 
    onKeyPress: function(e, t) { 
    console.log(e); 
    } 
}); 

관련 주제; ExtJS 4 Grid Panel - Spacebar row toggle

내가 재정의하려는 소스 코드.

// Select/Deselect based on pressing Spacebar. 
// Assumes a SIMPLE selectionmode style 
onKeyPress: function(e, t) { 
    if (e.getKey() === e.SPACE) { 
     e.stopEvent(); 
     var me = this, 
     record = me.lastFocused; 

     if (record) { 
      if (me.isSelected(record)) { 
       me.doDeselect(record, false); 
      } else { 
       me.doSelect(record, true); 
      } 
     } 
    } 
}, 
+0

두 번째는 좋아 보이지만, 타이밍이 문제가 될 수있다 :

Ext.define('MyApp.selection.RowModel', { override: 'Ext.selection.RowModel', onKeySpace: function(e) { console.log(e); } }); 

소스 ... 함께가는 종료. 언제 그것을 무시하고 있습니까? –

+0

응용 프로그램 시작 지점의 끝. 그래서 Ext.application의 끝에 나는 두 번째 시도했을 때 그리드 플랫을로드하지 않았다. 선택 모델의 'createClass'속성을 MyApp.selection.RowModel로 변경했지만 크롬 도구에서 추적 할 수없는 오류가 발생했습니다 – JasonF

+0

실제로 오류가 잡히지 않았습니다. TypeError : 개체가 함수가 아닙니다. VM13736 : 3 익명 함수) VM13736 : 3 Ext.ClassManager.instantiate ext-all.js : 9273 (익명 함수) – JasonF

답변