Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Объект при переносе из {...} в Ext.define перестает работать (https://javascript.ru/forum/extjs/32419-obekt-pri-perenose-iz-%7B-%7D-v-ext-define-perestaet-rabotat.html)

vladbrk 16.10.2012 01:53

Объект при переносе из {...} в Ext.define перестает работать
 
Проблема с объектом который работает при его создании через {...} и не работает при его создании через Ext.define и Ext.create
Ext.define("AddCountryPanel", {
    extend: "Ext.form.Panel",
    title: "Add",
	url: "http://localhost:8181/website/rest/country/add/",
	items: [{
		xtype: "textfield",
		name: "id",
		fieldLabel: "Id"
	}, {
		xtype: "textfield",
		name: "name",
		fieldLabel: "Name"
	}],
	buttons: [{
		text: "Reset",
		handler: function(){
			this.up("form").getForm().reset();
		}
	}, {
		text: "Save",
		handler: function(){
			this.up("form").getForm()submit();
		}
	}]
});


Ext.define("CountryTab", {
    extend: "Ext.panel.Panel",
    title: "Country",
    layout: "accordion",
	items:[
                // Код через define и create не работает
                // Отсылает сформированный код формы по адресу [url]http://localhost:8181/website/rest/[/url]
                // Вопрос! А куда делся остальной url country/add/ ?
                //Поле url внутри объекта существует и заполнено правильно
		Ext.create("AddCountryPanel"),
                // В данном случае код отрабатывает
                // Отсылает сформированный код формы по адресу [url]http://localhost:8181/website/rest/country/add/[/url]
		{
				title: "Add",
				xtype: "form",
				url: "http://localhost:8181/website/rest/country/add/",
				items: [{
					xtype: "textfield",
					name: "id",
					fieldLabel: "Id"
				}, {
					xtype: "textfield",
					name: "name",
					fieldLabel: "Name"
				}],
				buttons:[{
					text: "Reset",
					handler: function(){
						this.up("form").getForm().reset();
					}
				},{
					text: "Save",
					handler: function(){
					    form = this.up("form").getForm().submit();
					}
				}]
        }
	]
});


Заранее спасибо

vladbrk 16.10.2012 18:26

Сначала попробовал воспользоваться параметром initComponent в define, не помогло, так и не понял какой смысл от этого initComponent.
Единственный способ решения проблемы, это передать url при Ext.create, а не при define.

А вся проблема в том что url через Ext.define не попадает в Ext.form.Basic (который находится в Ext.form.Panel), но попадает через Ext.create.


Часовой пояс GMT +3, время: 08:03.