Как вставить значение в ExtJS displayfield в элементе dom

#javascript #extjs #extjs6

#javascript #extjs #extjs6

Вопрос:

Вот моя конфигурация displayfield, которая является элементом панели формы..

 {
    fieldLabel: "Class"
    itemId: "class"
    name: "class"
    readOnly: true
    value: "my Class"
    xtype: "displayfield"
}
  

У меня есть ExtJS displayfield, который работает нормально, но в некоторых случаях, даже если значение доступно, значение не отображается. Даже значение вводится после метода рендеринга.

  afterrender: function(val, eOpts){
        let _this = this,
            view = _this.getView();
            console.log(view.itemId  " " view.value);
            
           
    } 
    
  

После моей глубокой отладки я заметил, что само значение отсутствует в dom. Итак, я планирую вставить элемент в метод dom afterrender. Кто-нибудь может подсказать мне, как я могу вставить значение в displayfield dom.

мой идентификатор такой, но он не работает должным образом. некоторое время стиль и метка только удаляются.

 afterrender: function(val, eOpts){
        let _this = this,
            view = _this.getView();
            console.log(view.itemId  " " view.value);
             view.el.dom.innerText = view.value;
           
    } 
  

Комментарии:

1. Проверить данные о доходах (json?) когда displayfield пуст.

2. Я получаю значение в данных.

3. Какие данные? Можете ли вы показать входящий json для своей формы?

4. Я использую mongo, поэтому данные json, которые я предоставляю, образуют соответствующую конфигурацию поля, которую получаю только я.

5. Ошибка, похоже, находится в другом месте. попробуйте: Ext.first('#formItemId').getForm().findField('displayFieldName').setValue(12) . Вот пример с двумя возможными способами заполнения данных в displayfield

Ответ №1:

Неясно, как ваше поле получает данные. Если я вас правильно понимаю, вам следует использовать метод displayfield.setValue(), подобный этому:

вот рабочая скрипка

Согласно вашему описанию, трудно понять причину, по которой displayfield не отображает какое-либо значение. Но вы можете проверить это сами, посмотрев console.log(IdOfYourDisplayField);