2015-01-14 3 views
-2

Простой код:Почему renderTo не работают в xtype

var myPanel = { 
    xtype : 'panel', 
    height : 100, 
    width : 100, 
    html : 'Hello!', 
    renderTo:Ext.getBody() 
}; 

Почему renderTo не работают в xtype? Но этот код работал:

Ext.define('MyApp.CustomClass', { 
    extend: 'Ext.panel.Panel', 
    alias: 'widget.myCustomComponent' 
}); 

new Ext.Panel({ 
    renderTo:Ext.getBody(), 
    items : [{ 
     xtype : 'myCustomComponent', 
     html:'World' 
    }] 
}); 

ответ

3

В ниже вы не инициализирует панель, вам нужно вызвать его/Передать его в ExtJS разобрать и инициализировать класс. Эта часть кода - это просто объект Javascript, ExtJs не знает об этом.

var myPanel = { 
    xtype: 'panel', 
    height: 100, 
    width: 100, 
    html: 'Hello!', 
    renderTo: Ext.getBody() 
}; 

Чтобы инициализировать это с помощью ExtJs, вам необходимо использовать вызов Ext.create, как показано ниже.

var myPanel = { 
    xtype: 'panel', 
    height: 100, 
    width: 100, 
    html: 'Hello!', 
    renderTo: Ext.getBody() 
}; 

Ext.create(myPanel); 

Также здесь есть fiddle демо

+0

это класс? Я должен создать объект? Спасибо. –

+0

Я обновил свой ответ, в верхнем блоке, использующем стандартный JS, ExtJs не знает об этом вообще. Вы можете смешивать чистый JS с ExtJs в некоторой степени, поэтому для ExtJs для работы с этим объектом и для инициализации компонента ему нужен вызов Ext.create для загрузки классов и анализа конфигурации – Scriptable

Смежные вопросы