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, время: 23:28. |