Показать сообщение отдельно
  #1 (permalink)  
Старый 14.05.2016, 23:32
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Проблемы со связью (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@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием