2013-11-22 4 views
0

Я использую Extjs 4.2, и у меня возникла проблема.Extjs - Не могу скрыть окно

Я создал объект «Window_Graph», который расширяет «Окно». Когда я пытаюсь скрыть этот объект, он вызывает ошибку javascript: «Uncaught TypeError: Невозможно вызвать метод« применить »неопределенного».

Существует мой объект:

Ext.define('PFS.view.Window_Graph', { 
    extend: 'Ext.Window', 
    alias: 'widget.window_graph', 
    layout: 'fit', 
    border: false, 
    closable: true, 
    header: true, 
    draggable: true, 
    resizable: true, 
    border: false, 
    tbar: [ 
     { xtype: 'button', action: 'modifier',  text: 'Modifier',  iconCls: 'iconAppEdit'  }, 
     { xtype: 'button', action: 'deplacer',  text: 'Déplacer',  iconCls: 'iconArrowOut' }, 
     { xtype: 'button', action: 'redimensionner', text: 'Redimensionner', iconCls: 'iconShapeHandles'}, 
     { xtype: 'button', action: 'supprimer',  text: 'Supprimer',  iconCls: 'iconCross'  }, 
    ], 
    autoShow: true, 
    constrain: true 
}); 

Существует, когда я создаю мой window_graph:

Ext.getCmp('page1').add({ 
    xtype: 'window_graph', 
    id:  'graph_1', 
    width: 500, 
    height: 300, 
    x:  10, 
    y:  10 
}); 

И дальше, я стараюсь, чтобы скрыть это так:

Ext.getCmp('graph_1').hide(); 

Спасибо ,

+0

Можете ли вы показать код, в котором у вас есть экземпляр, который вы пытаетесь скрыть? – kevhender

+0

Я отредактировал мое сообщение ... Спасибо. – Souffiane

+0

Там должно быть что-то еще, вызывающее проблемы, я пробовал код в своем следующем комментарии на этой странице и не имел никаких проблем: http://try.sencha.com/extjs/4.2.0/docs/Ext.window .Window.1/viewer.html Вы видите различия в том, что у меня есть против того, что у вас есть? – kevhender

ответ

1

Ext.getCmp является returing в вашем случае неопределенной! Об этом сообщается сообщение об ошибке.

Я думаю, что знаю причину, по которой вы получаете это. Процесс инициализации еще не завершен. Вы звоните Ext.getCmp("graph_1") слишком рано. Если вы хотите скрыть окно при создании, используйте autoShow=false.

В качестве альтернативы вы можете также попробовать это

var graphWindow = Ext.ComponentQuery.query("window_graph")[0]; 
debugger; //look in the console if you are getting an object back. 
graphWindow.hide(); 
Смежные вопросы