Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Sencha Touch: как загрузить с сервера данные в поля. (https://javascript.ru/forum/extjs/53395-sencha-touch-kak-zagruzit-s-servera-dannye-v-polya.html)

potkin 02.02.2015 15:30

Sencha Touch: как загрузить с сервера данные в поля.
 
Есть Вьюха:
Ext.define("MyApp.view.view1", {
    extend: "Ext.Panel",
    ...


И на ней есть поля: Текстовые, datepickerfield, selectfield, ...:
{
    xtype: "fieldset",
    docked: "top",
    items: [
        {
            xtype: "datepickerfield",
            label: "Дата",
            value: new Date(),
            dateFormat: "d.m.Y",
            id: "Date1",
            required: true
        },
    ...



Как с сервера загрузить данные во все поля одним запросом?

Например в ExtJS 4.X делал так:
var PanelData = new Ext.FormPanel({
    region: 'center',
    url: ...
    frame: true,
    monitorValid: true,
    ...

... ... ...

//Вот так загружаю данные с Сервера
PanelData.load({
    timeout: TimeOutDefault,
    waitMsg: lanLoading,
    success: function (result) {
    ...


Заранее спасибо!

skrudjmakdak 03.02.2015 09:12

я канешь на сенча тач не писал, но попробую предположить
в extjs есть xtype form у которого есть метод load. я посм в доки у сенча тач и увидел, что там тоже есть from:
http://docs-origin.sencha.com/touch/...Ext.form.Panel
и есть метод load. может он поможет?

potkin 03.02.2015 17:49

Делаю так:
var form = Ext.getCmp("formX");

form.setValues({
    Date1: new Date(),
    ...
});

Получаю ошибку при "form.setValues(...":
undefined is not a function

siber-biber 03.02.2015 18:55

form.getForm().setValues({ ... })

potkin 03.02.2015 19:30

К сожалению, но ...
form.getForm(): <not available>


Сейчас делаю так:
Делаю Запрос на сервер, получаю значения полей и по id-шнику проставляю значения в поля.
Но, это онанизм какой-то :-E

siber-biber 03.02.2015 19:35

form это у вас что? какой компонент?

siber-biber 03.02.2015 19:48

console.log(form.$className)

potkin 04.02.2015 19:45

MyApp.view.view1

там в самом верхнем посту:
Ext.define("MyApp.view.view1", {
    extend: "Ext.Panel",
    alias: "widget.view1",
    ...

siber-biber 04.02.2015 19:57

дак у вас там формы нет в принципе? вы в примере extjs4 нарисовали форму ..что вам мешает её использовать в ext5 ?

potkin 05.02.2015 12:50

Это Sencha Touch и стандарт написания MVC кода для Сенчи.


Есть app.js:
Ext.application({
    name: "XXX",

    models: ["App/modelAppList", ...],
    stores: ["App/storeAppList", ...],
    views: ["App/viewAppList", ...],
    controllers: ["App/controllerAppList", ...],

    launch: function () {
        var viewAppList = { xtype: "viewapplist", id: "formX" };
        ...

        Ext.Viewport.add([viewAppList, ...]);
    }
});


Есть viewAppList:
Ext.define("XXX.view.App/viewAppList", {
    extend: "Ext.Panel",
    alias: "widget.viewapplist",

    config: {
        layout: { type: "fit" },
        items: [
            //Верхнее меню
            {
                xtype: "toolbar",
                title: "...",
                docked: "top",
                items: [
                    {
                        xtype: "datepickerfield",
                        name: "Date1",
                        width: 155, value: new Date(), dateFormat: "d.m.Y"
                    },
                    { xtype: "spacer" },
                    {
                        //Выход
                        xtype: "button", ui: "action", itemId: "buttonExit"
                    }
                ]
            },
            {
                xtype: "list", 
                loadingText: "...", emptyText: "...", 
                store: "App/storeAppList", 
                itemId: "listAppList", 
                onItemDisclosure: true, 
                grouped: true, 
                itemTpl: "{AppName}"
            }

        ],
        listeners: [
            {
                delegate: "#buttonExit",
                event: "tap",
                fn: "onButtonExitTap"
            },
            {
                delegate: "#listAppList",
                event: "select",
                fn: "onListAppListSelect"
            }
        ]

    },

    onButtonExitTap: function () {
        this.fireEvent("buttonExitCommand", this);
    },
    onListAppListSelect: function (list, record, target, index, evt, options) {
        this.fireEvent("listAppListCommand", this, record);
    }
});


Есть model и store
//...

Я честно говоря недавно с Сенча Точ разбираюсь и не понял, зачем ещё рисовать форму?
Уже всё нарисовано, просто обращайся и используй.
Например в самом верху:
var viewAppList = { xtype: "viewapplist", id: "formX" };

По "id" я юзаю viewAppList так:
var form = Ext.getCmp("formX");
form.setValues({
    Date1: new Date(),
    ...
});

Но не работает ...


Часовой пояс GMT +3, время: 03:37.