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 |
Формула selectedGroupOrderStatus вычисляется следующим образом:
selectedGroupOrderStatus: function(get) { return get("selectedGroupOrder.status"); }, selectedGroupOrder: function(get) { return get("groupOrderList.selection"); }, |
Выкрутился. И знаете как? Блин, хреново. Вот как:
init: function() { var me = this; var vm = me.getViewModel(); vm.set("selectedGroupOrderCompleted", null); }, То есть, в контроллере вида, я просто инициализирую формулу (считая ее за переменную) любым значением кроме undefined. В итоге, формула при старте приложения срабатывает. И все что мне нужно делает. В общем формулы сырые, с явными багами, либо я не знаю как ими пользоваться. . |
Про формулы, binding и прочие MVM штуки лучше спрашивать сразу в сенчовом форуме. Там обитают человеки, которые эту фигню написали и знают от и до.
|
Я туда уже два поста закинул. Пока молчат.
|
Еще один вариант нашел как выкрутиться. Несколько лучше выглядит. Надо задать значение по умолчанию в самом компоненте. Например:
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"); } }, |
оф. форум заглох... вообще не отвечают уже
|
отпуска :dance: пляж и солнце.. временное затишье.. :)
|
Самому, как не придется столкнуться с формулами, постоянно с ними разбираюсь, будто первый раз пользуюсь.. мне их логика никак не уложиться в голове...
|
Часовой пояс GMT +3, время: 03:24. |