Ext JS 4.0 — MVC Ext.panel.Форма и Ext.ComponentLoader

#model-view-controller #extjs #extjs4

#model-view-controller #extjs #extjs4

Вопрос:

Я только начинаю углубляться в Ext JS 4.0 и новую архитектуру MVC. Я создал пользовательский контроллер с несколькими видами сетки и дерева и их соответствующими хранилищами. Пока все хорошо.

Я только что создал свою первую форму, и у меня проблемы с новой конфигурацией загрузчика. Форма отрисована, и следующий вызов Ajax выполнен успешно, но форма не заполняется.

 /*
 */
Ext.define('CORE.view.user.Form' ,{
   extend: 'Ext.form.Panel'
  ,alias : 'widget.userform'
  ,frame: true

  /*
   */
  ,initComponent: function() {

      Ext.apply(this, {
         title: 'User Form'
        ,height: 175
        ,items: [{
            xtype: 'textfield'
           ,fieldLabel: 'Name'
           ,name: 'name'
         },{
            xtype: 'textfield'
           ,fieldLabel: 'Email'
           ,name: 'email'
         }]

        ,loader: {
            url: 'data/usersform.json'
           ,autoLoad: true
           ,renderer: 'component'
           ,params: {
               email: 'email'
            }
         }
      });

      this.callParent(arguments);
   }
});
  

JSON, который я сейчас использую, выглядит следующим образом:

 {
    "success":true,
    "data":[{
            "name":"Ed",
            "email":"ed@sencha.com"
        }
    ]
}
  

Я перепутал все параметры рендеринга и попытался поиграть с target. Я очень смущен, учитывая возможные комбинации средств визуализации, целевых объектов и форматов JSON.

Я, вероятно, далек от сорняков… кто-нибудь заставил это работать? Мне очень сложно найти примеры этого.

Ответ №1:

Удалите [ и ] в вашем JSON.

Ответ №2:

Я не уверен, что ваш загрузчик загружает запись — возможно, потребуется указать root:. Во всех рабочих примерах, которые я нашел, вы просто не используете загрузчик в форме, но указываете хранилище, модель и прокси-сервер в модели. Загрузчик в самой форме означал бы, что вы на самом деле не используете MVC.

Проверьте это для рабочего примера MVC ….https://github.com/lucassus/extjs4-менеджер учетных записей / дерево / мастер / общедоступный — он использует ext-debug без загрузчика….Мне пришлось использовать ext-debug-all-w-comments и загрузчик в моем app.js чтобы все заработало.

Но следуйте его примеру из app.js затем посмотрите, как его контроллеры и представление используются с хранилищем / моделью / прокси

Ответ №3:

Я понимаю, что это старый вопрос, но, просматривая документы, вы используете неправильный тип средства визуализации. Это должны быть «данные», а не «компонент», потому что вы возвращаете данные, а не конфигурацию внешнего компонента.