Ext JS 4.0 - MVC Ext.panel.Form & Ext.ComponentLoader - PullRequest
1 голос
/ 17 мая 2011

Я только начинаю копаться в 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"
        }
    ]
}

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

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

Ответы [ 3 ]

1 голос
/ 17 июня 2011

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

0 голосов
/ 04 апреля 2012

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

0 голосов
/ 12 июня 2011

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

Проверьте это для рабочего примера MVC .... https://github.com/lucassus/extjs4-account-manager/tree/master/public - он использует ext-debug без загрузчика .... Мне пришлось использовать ext-debug-all-w-комментарии и загрузчик в моем app.js, чтобы все заработало.

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

...