#extjs #data-binding #label
#extjs #привязка к данным #метка
Вопрос:
В метке extjs6 с привязкой к данным как мне преобразовать привязанное значение при каждом его изменении?
Прямо сейчас я использую viewmodel с формулой, но он использует этот метод только при создании панели, я хочу, чтобы он отображал формулу каждый раз, когда у меня происходит входящее изменение значения метки.
может кто-нибудь увидеть, что я делаю неправильно?
вот моя метка в поле зрения
columnWidth: 0.5,
xtype: 'label',
itemId: 'labelDateStatementId',
cls: 'myLabelCRM2',
bind: {
text: '{convertDateStatement}'
}
вот моя формула в viewmodel
formulas: {
convertDateStatement: function (get) {
var me = this;
var myView = me.getView();
var label = myView.queryById('labelDateStatementId');
debugger;
}
оно попадает в формулу при создании представления… но мне нужно, чтобы оно менялось каждый раз, когда я меняю источник значения привязки метки.
Ответ №1:
возможно, это решение будет полезно для вас (установка данных непосредственно в модели представления):
Проверьте пример на скрипке
Через 2 секунды измените метку в поле.
Или вы можете привязать запись для просмотра модели следующим образом:
Проверьте пример 2 на скрипке
Комментарии:
1. спасибо, но я не хотел добавлять таймер. Я думал, что не будет какого-то средства форматирования значений?
2. Тайм-аут был просто примером изменения значения в форме. Как изменить исходное значение? Можете ли вы прикрепить код?
3. чтобы использовать ваш второй пример, привяжите запись к модели просмотра… в моем контроллере мне нужно было бы использовать код … setTimeout(function() { exampleRecord.set(‘label’, ‘new label’); }, 2000); это правильно? что это должно быть в моем контроллере?
4. Нет, setTimeout я просто использовал для проверки изменений записи.