Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как в биндинге сослаться на текущий класс? (https://javascript.ru/forum/extjs/67132-kak-v-bindinge-soslatsya-na-tekushhijj-klass.html)

khusamov 30.01.2017 02:36

Как в биндинге сослаться на текущий класс?
 
Ext.define("EwsOffice.view.altawin.grorders.Grorders", {
	
	extend: "Ext.grid.Panel",
	
	...
	
	reference: "gridAltawinGrorders",
	
	tbar: [{
		text: "Import",
		handler: "onImportButtomClick",
		bind: {
			disabled: "{!gridAltawinGrorders.selection}"
		}
	}],



Как мне обойтись без reference: "gridAltawinGrorders"?

Следующая конструкция (здесь вместо ссылки я пытался this использовать) не работает:

disabled: "{!this.selection}"


Мне это нужно потому, что reference класса грида может быть изменен в месте создания экземпляра (reference там точно понадобиться вновь). И тогда биндинг не будет работать.

khusamov 31.01.2017 18:42

Попытался так сделать:
Ext.define("EwsOffice.view.altawin.grorders.Grorders", {
	
	extend: "Ext.grid.Panel",
	
	...
	
	bind: { selection: "{selection}" },
	
	tbar: [{
		text: "Import",
		handler: "onImportButtomClick",
		bind: {
			disabled: "{!selection}"
		}
	}],

Но это тоже не работает.

khusamov 01.02.2017 01:37

Пока решил проблему таким способом:

Ext.define("EwsOffice.view.altawin.grorders.Grorders", {
	
	extend: "Ext.grid.Panel",
	
	...
	
	bind: { selection: "{selection}" },

	viewModel: { data: { selection: null } },
	
	tbar: [{
		text: "Import",
		handler: "onImportButtomClick",
		bind: {
			disabled: "{!selection}"
		}
	}],


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