Extjs привязывает переменную конфигурации к значению

У меня есть следующее приложение: https://fiddle.sencha.com/#view/editor&fiddle/1nmm. Я использую extjs 6.

После двойного щелчка по строке я хочу открыть новую вкладку. Новая вкладка должна содержать форму с информацией из сетки. Моя проблема в том, что когда я пытаюсь привязать значение поля отображения, вывод пуст (ничего не отображается).

xtype: 'displayfield',
fieldLabel: 'Id',
bind: {
    value: '{record.data.ts_id}'
}

Вышеупомянутая «запись» объявляется следующим образом:

config: {
    record: null,
    rowIndex: null
},

bind: {
    record: '{recordVM}',
    rowIndex: '{rowIndexVM}'
}

Как правильно привязать к значению displayfield?


person florin    schedule 05.01.2017    source источник


Ответы (2)


2 вещи:

1) Измените способ передачи данных в модель представления в TabUIController:

viewModel: {
    data: {
        record: record,
        rowIndex: rowIndex
    }
}

Нет смысла пытаться переназначить эти вещи.

2) Измените оператор привязки в своем представлении на value: '{record.ts_id}', привязка достаточно умна, чтобы углубляться в поля, когда она видит запись.

person Evan Trimboli    schedule 05.01.2017
comment
Это работает: вот скрипка. У меня все еще есть некоторые вопросы: кажется, что при привязке к значению displayfield привязываемая переменная — это та, что из модели представления, а не из конфигурации. Подход с конфигурацией используется, если вы хотите передать данные дальше по иерархии (например, если у вас есть модальное окно)? Если нет, то когда используется конфигурационный подход? - person florin; 06.01.2017

Попробуй это:

TabUIGrid.js

 bind: {
    store :'{users}',
    selection : '{myrecord}'
},

TabFormTest.js

{
        xtype: 'displayfield',
        fieldLabel: 'Name',
        bind: '{myrecord.ts_name}'
    }, {
        xtype: 'displayfield',
        fieldLabel: 'Email',
        bind: '{myrecord.ts_email}'
    }

Я проверил это на вашей скрипке, и она отлично работает.

person josei    schedule 05.01.2017
comment
Да, это работает, но есть одна загвоздка: здесь , когда вы открываете новый вкладку, а затем измените выбор сетки, информация на открытой вкладке также изменится. Это нежелательное поведение. - person florin; 06.01.2017