2013-06-07 1 views
2

Я передаю запись в из контроллера с помощью:Проблемы с областью, Sencha, Получение данных, переданных для просмотра контроллером в элементах?

showDetail: function (list, record) { 

    this.getMain().push({ 
     xtype: 'leaddetail', 
     data: record.data 
    }); 
}, 

Моего Вид:

Ext.define('ApexChat.view.LeadDetail', { 
extend: 'Ext.Panel', 
xtype: 'leaddetail', 

init: function() { 
    debugger; 
}, 


config: { 
    styleHtmlContent: true, 
    scrollable: 'vertical', 
    title: 'Details', 
    frame: true, 
    labelwidth: 75, 




    items: [ 
    { 
     xtype: 'fieldset', 
     columnWidth: 0.5, 
     collapsible: true, 
     title: 'Lead Information', 
     defaultType: 'textfield', 
     defaults: { anchor: '100%' }, 
     layout: 'vbox', 
     items: [ 
      { 
       fieldLabel: 'Name', 
       name: 'name', 
       tpl: '{name}', 
       value: '{name}', 
       disabled: true 
      }, 
      { 
       fieldLabel: 'Email', 
       name: 'email', 
       value: '{email}', 
       disabled: true 
      }, 
      { 
       fieldLabel: 'Phone', 
       name: 'phone', 
       value: '{phone}', 
       disabled: true 
      } 
     ] 
     }, 
     { 
      xtype: 'fieldset', 
      columnWidth: 0.5, 
      collapsible: true, 
      title: 'Exta Information', 
      defaultType: 'textfield', 
      defaults: { anchor: '100%' }, 
      layout: 'vbox', 
     items: [ 
      { 
       fieldLabel: 'Company Key', 
       name: 'companykey', 
       value: '{companyKey}', 
       disabled: true 
      }, 
      { 
       fieldLabel: 'Chat ID', 
       name: 'chatid', 
       value: '{chatId}', 
       disabled: true 
      }, 
      { 
       fieldtype: 'textarea', 
       fieldLabel: 'Notes', 
       name: 'notes', 
       value: '{notes}', 
       disabled: true 
      } 
     ] 
    } 
] 
} 
}); 

Но внутри TextFields я все еще вижу {CompanyName}

Если предположить, что не может быть сделано как что, как мне получить доступ к записи, передаваемой с контроллера, чтобы я мог сделать .get ('name') или что-то подобное этому?

ответ

1

tpl и data используются для визуализации пользовательского HTML, а поля Ext - это компоненты, которые обрабатывают собственный рендеринг. Вам не нужно прикасаться к их tpl, за исключением расширенных вариантов использования.

В отличие от других фреймворков, которые в основном основаны на HTML-шаблонах, Ext по существу представляет собой объектно-ориентированную библиотеку компонентов. Вы редко переходите на уровень HTML самостоятельно.

Для установки значений одной группы полей необходимо разместить их в Ext.form.Panel. Тогда вы можете использовать setValues или, возможно, более присвоенный в вашем случае, setRecord.

Используя ваш пример, вы должны настроить ваши поля таким образом:

Ext.define('ApexChat.view.LeadDetail', { 
    extend: 'Ext.Panel', 
    xtype: 'leaddetail', 

    config: { 
     ... 
     items: [{ 
      fieldLabel: 'Name', 
      // you only need the name for the field to load data 
      name: 'name' 
     },{ 
      fieldLabel: 'Email', 
      name: 'email' 
     }] 
    } 
}); 

Затем вы можете назначить запись во время создания с помощью опции record конфигурации:

this.getMain().push({ 
    xtype: 'leaddetail', 
    // using record config option 
    record: record 
}); 

Или вы можете использовать методы для загрузки данных:

// get a ref to your component the way you want, this line just illustrates what's in formPanel 
var formPanel = Ext.create({xtype: 'leaddetail'}); 

// using setValues 
formPanel.setValues(record.data); 

// or using setRecord 
formPanel.setRecord(record); 
+0

Я пробовал метод top, изменил данные: record.data t o запись: запись, но данные по-прежнему не загружаются? –

+0

Компонент 'leaddetail' должен быть расширен из' Ext.form.Panel', а не из 'Ext.Panel'. Кроме того, вы уверены, что 'this.getMain(). Push' действительно то, что вы хотите? Не следует ли вместо этого вызывать метод ['add'] (http://docs.sencha.com/touch/2.2.1/#!/api/Ext.Container-method-add)? – rixo

 Смежные вопросы

  • Нет связанных вопросов^_^