Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Проблемы со связью (bind) между выделенной строкой grid и хранилищем (https://javascript.ru/forum/extjs/63051-problemy-so-svyazyu-bind-mezhdu-vydelennojj-strokojj-grid-i-khranilishhem.html)

khusamov 14.05.2016 23:32

Проблемы со связью (bind) между выделенной строкой grid и хранилищем
 
Я в модели вида определил переменную selectedGroupOrder:

formulas: {
		selectedGroupOrder: function(get) {
			return get("groupOrderList.selection");
		},


В контроллере по определенному событию иногда сбрасываю выделение строки в таблице:

this.lookup("groupOrderList").getSelectionModel().deselectAll();


От selectedGroupOrder у меня есть зависимость:

stores: {
		trolleyListStore: {
			model: "Trolley",
			autoLoad: true,
			pageSize: 0,
			remoteFilter: true,
			filters: [{
				property: "grorderid",
				value: "{selectedGroupOrder.grorderid}"
			}, {
				property: "workstationType",
				value: "{selectedGroupOrder.workstationTypeId}"
			}]
		}
	}


Так вот проблема в том, что после сброса выделения строки хранилище trolleyListStore не перезагружается.

Вот так попробовал:

stores: {
		trolleyListStore: {
			model: "Trolley",
			bind: {
				autoLoad: "{selectedGroupOrder}"
			},
			...
		}
	}


В этом случае перезагружается один раз (что собственно и понятно, так как selectedGroupOrder не определен и autoLoad становится равным false), на в фильтрах передаются не пустые value, а предыдущие. В итоге таблица содержит неправильные данные.

И как все это настроить, чтобы работало как нужно?

khusamov 21.05.2016 19:20

Временно решил проблему такой формулой:

selectedGroupOrderId: function(get) {
			return get("selectedGroupOrder.grorderid");
		},


Ощущение, будто это бага.

kolka 28.05.2016 01:37

А попробуйте сделать логическое описание в контроллере ваших действий...

khusamov 28.05.2016 01:57

не понял что сделать???

kolka 28.05.2016 02:13

Я так понял, что при сбрасывании выделения строки в таблице нужно перезагрузить store.. может описать как есть в контроллере.. или я не так понял ?

khusamov 28.05.2016 16:35

Цитата:

Сообщение от kolka (Сообщение 417863)
Я так понял, что при сбрасывании выделения строки в таблице нужно перезагрузить store.. может описать как есть в контроллере.. или я не так понял ?

Тогда зачем нужен binding? Эдак я могу вообще все описывать в контроллере. Я хочу чтобы binding использовался по полной. А тут надо как-то выкрутиться.

И главное, код который сбрасывает выделение вообще-то не в курсе, какие есть зависимости от этого действия. И не должен быть в курсе.

.


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