Javascript.RU

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

Binding: И снова проблема с формулами
При запуске приложения следующая формула не срабатывает, в итоге кнопка break активна (ее активность зависит от этой формулы):

breakButtonDisabled: function(get) {
	return !get("selectedGroupOrder") || get("stoped") && get("selectedGroupOrderStatus") != "complete";
},


Но если я уберу get("selectedGroupOrderStatus") != "complete", то формула при запуске приложения начинает работать:

breakButtonDisabled: function(get) {
	return !get("selectedGroupOrder") || get("stoped");
},


Почему так происходит и как сделать, чтобы она все-таки работала в первом случае?

https://www.sencha.com/forum/showthr...58#post1136258
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2016, 13:04
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Формула selectedGroupOrderStatus вычисляется следующим образом:

selectedGroupOrderStatus: function(get) {
	return get("selectedGroupOrder.status");
},
selectedGroupOrder: function(get) {
	return get("groupOrderList.selection");
},
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2016, 07:44
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Выкрутился. И знаете как? Блин, хреново. Вот как:

init: function() {
	var me = this;
	var vm = me.getViewModel();
	vm.set("selectedGroupOrderCompleted", null);
},


То есть, в контроллере вида, я просто инициализирую формулу (считая ее за переменную) любым значением кроме undefined. В итоге, формула при старте приложения срабатывает. И все что мне нужно делает.

В общем формулы сырые, с явными багами, либо я не знаю как ими пользоваться.

.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2016, 20:33
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Про формулы, binding и прочие MVM штуки лучше спрашивать сразу в сенчовом форуме. Там обитают человеки, которые эту фигню написали и знают от и до.
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2016, 20:57
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Я туда уже два поста закинул. Пока молчат.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2016, 19:01
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Еще один вариант нашел как выкрутиться. Несколько лучше выглядит. Надо задать значение по умолчанию в самом компоненте. Например:

text: "Print Label",
handler: "printLabel",
disabled: true, // значение по умолчанию
bind: {
	disabled: "{printLabelButtonDisabled}"
}


и формулы

formulas: {
	printLabelButtonDisabled: function(get) {
		var barcode = get("selectedCommand.barcode");
		return barcode ? barcode.indexOf("%") != -1 : true;
	},
	selectedCommand: function(get) {
		return get("commandsGrid.selection");
	}
},
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #7 (permalink)  
Старый 03.06.2016, 19:02
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

оф. форум заглох... вообще не отвечают уже
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2016, 09:11
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

отпуска пляж и солнце.. временное затишье..
Ответить с цитированием
  #9 (permalink)  
Старый 07.06.2016, 09:12
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

Самому, как не придется столкнуться с формулами, постоянно с ними разбираюсь, будто первый раз пользуюсь.. мне их логика никак не уложиться в голове...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
проблема с setInterval / clearInterval max0n Общие вопросы Javascript 4 11.09.2012 12:12
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Снова проблема с событиями boneg Events/DOM/Window 0 13.10.2010 18:05
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12