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) { ... Заранее спасибо! |
я канешь на сенча тач не писал, но попробую предположить
в extjs есть xtype form у которого есть метод load. я посм в доки у сенча тач и увидел, что там тоже есть from: http://docs-origin.sencha.com/touch/...Ext.form.Panel и есть метод load. может он поможет? |
Делаю так:
var form = Ext.getCmp("formX"); form.setValues({ Date1: new Date(), ... }); Получаю ошибку при "form.setValues(...": undefined is not a function |
form.getForm().setValues({ ... }) |
К сожалению, но ...
form.getForm(): <not available> Сейчас делаю так: Делаю Запрос на сервер, получаю значения полей и по id-шнику проставляю значения в поля. Но, это онанизм какой-то :-E |
form это у вас что? какой компонент?
|
console.log(form.$className) |
MyApp.view.view1
там в самом верхнем посту: Ext.define("MyApp.view.view1", { extend: "Ext.Panel", alias: "widget.view1", ... |
дак у вас там формы нет в принципе? вы в примере extjs4 нарисовали форму ..что вам мешает её использовать в ext5 ?
|
Это 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. |