2013-08-23 6 views
-1

나는 내가 해결하지 못한 뭔가 잘못하고 있음을 확신합니다. 폼 필드에는 여러 텍스트 필드, 라디오 버튼, 윈도우가 포함되어 있습니다. 나는 다음과 같은 코드를 사용하는 경우 :양식에서 모든 값을 가져 오는 방법은 무엇입니까?

console.log(Discounts.getForm().getValues()); 

// Discount is form name which is defined like below 
var Discounts = Ext.create('Ext.form.Panel', { 
    ... 
} 

나는 window 구성 요소를 포함 grid panel 제외한 모든 값을 볼 수있다 (나는 다른 모든 창 값을 볼 수없는 진실을 얘기합니다!).

구성 요소 트리 아래 같은 :

+-- FORM PANEL (layout card) 
    | 
    +-- CARD LAYOUT - 1 
    | | 
    | +- COMBOBOX 
    | +- TEXTFIELD 
    | 
    +-- CARD LAYOUT - 2 
    | | 
    | +- WINDOW 
    | | 
    | +- GRID PANEL 
    | 
    +-- CARD LAYOUT - 3 
    | | 
    | +- RADIO GROUP 

내가 뭘 잘못 어떤 생각을 가지고 있습니까?

예를 들어 Discount 양식과 함께 winArticle 창 필드 값을 얻고 싶습니다.

추신 : 코드가 너무 커서 JSFiddle을 사용했습니다.

Source

+0

는'getValues' 요소를 형성하지 않는 명확하게 폼 요소 값 ... 창 및 패널을 반환합니다. 어떤 종류의 가치를 기대합니까? 그리고 카드 레이아웃의 창은 이상하게 보입니다. –

+0

친애하는 Lauren 님, 창에서 사용할 수있는 텍스트 필드 값을 얻고 싶습니다.나는 폼의 구성 요소를 창 내부에 넣을 수는 있지만 아무 일도 일어나지 않습니다. 나는 간단한 해결책이 있다고 믿는다. 그러나 나는 아직 찾지 못했다! –

+0

바이올린이 작동하지 않습니다. 문제를 해결할 때 불필요한 구성을 제거하는 것이 좋습니다. – Eric

답변

1

당신은 당신의 코드 때문에, 그러나 ... 항목 ID은 FormPanel 아이를주고 당신은 아마 그 값을 얻을 수 Discounts.down('#yourchildformpanelitemid').getValues() 같은 구성 요소 쿼리를 사용함으로써,은 FormPanel

을은 FormPanel 아니오 방법은 maintainable, 내 충고, refactor/귀하의 코드를 재구성하고 MVC 구조를 사용. 센차에서 :

대형 클라이언트 측 응용 프로그램은 항상 열심히 조직하고 유지하기 어려운 로 작성하기 어려운되었습니다. 더 많은 기능과 개발자를 프로젝트에 추가 할 때 이들은 제어 범위가 더 이상 확장되지 않는 경향이 있습니다 ( ). Ext JS 4에는 코드를 구성 할뿐만 아니라 작성할 수있는 양이 줄어든 새로운 응용 프로그램 아키텍처가 제공됩니다.

코드를 재구성하고 구성 요소를 별도로 정의해야합니다. 이렇게하면 앱을 유지 관리 할 수 ​​있습니다. 귀하가 작성하는 formpanel은 별도의 구성 요소가 될 것이며 자체 제어기를 가지므로 다른 곳에서도 동일한 formpanel을 사용할 수 있습니다.

또한, 피하기 위해 엽차, ExtJS로는 관행의 다음 문서를 참조 :
http://www.sencha.com/blog/top-10-ext-js-development-practices-to-avoid/

(모든 경우) 대부분의 도움말 코드에 적용 할 수있다. 예를 들어, 미친 듯이 중첩 된 구성 요소가 있습니다. 중첩의 대부분은 불필요합니다. 예를 들어 :

... 
items: [ 
    { 
     xtype: 'form', 
     items: new Ext.Panel({ 
      items: [ 
       { 
        xtype: 'fieldset', 
        ... 

xtype: 'form' 지구에 내부 패널을 만들 이유 서식 패널을 생성? 의 ExtJS MVC 아키텍처에

더 : http://docs.sencha.com/extjs/4.2.0/#!/guide/application_architecture

+1

여기서 MVC가 가장 큰 솔루션이라고 말할 수는 없지만, Asker는 일부 강화를 단순화해야합니다. – Reimius

+0

친애하는 Lauren, 당신은 form 구성 요소를 중첩하는 것에 대해 옳았습니다. 그러나 그것은 단지 시험 목적이었습니다. 앞에서 설명한 것처럼 창에서 사용할 수있는 필드 값을 가져올 수 없으므로 추가로 'form'구성 요소를 추가하여 무언가를 시도하고 싶습니다. 미안합니다. –

관련 문제