значение отображения метки exjs6 при привязке к данным

#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 я просто использовал для проверки изменений записи.