2017-03-24 7 views
1

showbutton을 처음 클릭하면 창이 완전히 열리지 만 창을 닫고 다시 열면이 오류가 나타납니다 ("null의 속성 'dom'을 읽을 수 없음). line 'shiftWindow.show();'. 어떤 도움을 주셔서 감사합니다.Uncaught TypeError : null의 속성 'dom'을 읽을 수 없습니다.

var shiftWindow = Ext.create('Ext.window.Window', { 
    title: 'Edit Shift', 
    resizable: false, 
    id: 'shiftwindow', 
    width: 465, 
    //bodyPadding: 5, 
    modal: true, 
    store: shiftStorePlanner, 

    items: { 
     xtype: 'form', 
     id: 'idFormShift', 
     bodyPadding: 10, 
     items: shiftViewModelPlannerData 
    }, 
    buttons: [{ 
     text: 'Save', 
     cls: 'planner-save-button', 
     overCls: 'planner-save-button-over', 
     handler: function() { 
      var wi = this.up('.window'); 
      var form = Ext.getCmp('idFormShift'); 
      if (form.isValid()) { 
       shiftTimemappingarray = []; 
       // getShiftTime(); 
       setShiftTimeDetails(); 
      } 
     } 
    }, { 
     text: 'Cancel', 
     handler: function() { 
      this.up('.window').close(); 
     } 
    }] 
}); 
shiftWindow.show(); 

답변

1

창에서 close()을 호출하면 창이 사라집니다. 더 이상 DOM에 존재하지 않습니다. show()에 전화하기 전에 다시 만들어야합니다.

또는 닫는 대신 hide() 창을 사용할 수 있습니다. 그러면 그것은 남아있을 것이고 또 다른 창조물을 필요로하지 않을 것입니다. 오른쪽 상단의 'x'는 여전히 close 이벤트를 발생시킵니다.

대신

이 만이 DOM 포함한 전체 창을 파괴하기 때문에 당신은

this.up('.window').destroy(); 

를 사용해야합니다

this.up('.window').close(); 

을 사용하여 윈도우의 클릭을 취소

+0

나는 이것을 시도했지만 여전히 작동하지 않습니다. – Hemant

0

. 그래서 언제든지 열어 보면 새롭고 신선합니다.;)

+0

대답을 유용하게 사용했는지 여부를 알려주십시오. –

관련 문제