2015-02-06 9 views
0

Sencha Touch 2에서 유틸리티/클래스를 확장 했으므로 이제 config 객체의 다른 설정에 따라 다른 유형으로 다시 확장하려고합니다. Ive는 그것을 다시 확장했지만 그냥 확장 (그냥 extend: 'Ext.ux.MyUX'을 추가하여)하면 이전 오브젝트의 기본 설정을 반환하지만 완전히 다르게 처리하려고합니다. 이전 확장 클래스를 제거하거나 items[]을 비울 수 있습니까?확장 클래스 두 번째 시간 sencha touch 2

Ext.define('MyAPP.view.MyView', { 
    extend: 'Ext.ux.MyUX', 
    xtype: 'my', 
}); 

내 코드 :

initialize: function() { 
var items = [ 
      xtype: 'toolbar', 
      docked: 'top', 
      title:'title' 
     }]; 
this.setItems(items); 
} 

편집 1 :

는 말할 수 있습니다 나는 다음과 같은 설정 개체 내 Ext.ux.MyUX을 확장했습니다. 첫 번째 인스턴스가 완벽하게 작동하고 클래스를 확장하고 items[]을 재정의하지만 다른 재정의를 위해 이전에 재정 의하여/확장 된 이전 items[]을 표시하도록 다시 확장하려고 할 때 클래스 프로토 타입에 items를 갖는

config: { 
     fullscreen: true, 
     items : [ 
     { 
      title: 'Home' 
     }, 
     { 
      title: 'ABOUT', 
      items: [{ 
       items: [ 
       { xtype: 'about'}, 
      { 
       xtype: 'titlebar', 
       title: 'About Us', 
       docked: 'top' 
      }] 
      }] 
     } 

     ] 
    } 
+0

기본 및 확장 클래스의 전체 코드를 게시 할 수 있습니까? – Saki

+0

@Saki 항목의 'Ext.ux'에 대한 간단한 설정을 사용할 수 있습니다. – developer

+0

설명만으로는 무엇을 성취하고 싶은지 전혀 모릅니다. 그래서 나는 코드에서 이해하기를 바랍니다. – Saki

답변

0

은 더 클래스를 확장 할 계획이없는 경우에도 아주 좋은 생각이 아니다. 프로토 타입의 복잡한 변수는 인스턴스가 둘 이상인 경우 필연적으로 문제가되는 모든 인스턴스에서 공유됩니다.

내가 후손에 필요한 모든 기능을 포함 할 기본 클래스를 만들 거라고하고 그 확장 할 것 : 대신 이 이
B -> C -> D 
이 이 항목을 구현하는 것이

후손이 필요

B -> C 
B -> D 

을 . http://skirtlesden.com/articles/config-objects-on-the-prototype

를이 내가 전체 소스 코드를 예를 들어 사키의 질문을 따라하는 것이 좋습니다 도움이되지 않는 경우 :

+0

현재'Ext.ux.myUX-> MYAPP.view.View1','Ext.ux.myUX-> MYAPP.view.View2'로하고 있는데 두번째 확장 할 때 이전 항목을 보여줍니다. . – developer

+0

확장보기를 제거 할 수있는 방법이 있습니까? – developer

+0

괜찮지 만 'Ext.ux.myux'가 아닌보기에 항목을 구현하십시오. 다른 옵션은 [공장 기능] (http://extjs.eu/?s=factory+function)을 사용하는 것입니다. – Saki

0

는 설정 객체와 클래스를 확장하는 방법에 대한 정말 도움이되는 기사가있다. 예 : 초기화 함수를 구현 한 곳과 파생 된 클래스가 명확하지 않습니다.