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, время: 00:27. |