In der json-Daten, wie Sie erstellt ein Formular in sencha
Möchte ich Lesen, json-Daten aus Datei - Inhalt der json-Datei angezeigt, unten
{
"form": {
"fields" : [
{
"field":"textfield",
"name": "username",
"constrain": "5-10",
"value": ""
},
{
"field":"textfield",
"name": "password",
"constrain": "5-10",
"value": ""
},
{
"field":"datepickerfield",
"name": "Birthday",
"constrain": "5-10",
"value": "new Date()"
},
{
"field":"selectfield",
"name": "Select one",
"options":[
{"text": "First Option", "value": 'first'},
{"text": "Second Option", "value": 'second'},
{"text": "Third Option", "value": 'third'}
]
},
]
}
}
Modell
Ext.define('dynamicForm.model.Form', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'field', type: 'string'},
{name: 'name', type: 'string'},
{name: 'constrain', type: 'string'},
{name: 'value', type: 'string'}
],
hasMany: {model: 'dynamicForm.model.SelectOption', name: 'options'}
}
});
Ext.define('dynamicForm.model.SelectOption', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'text', type: 'string'},
{name: 'value', type: 'string'}
]
}
});
store
Ext.define('dynamicForm.store.FormStore', {
extend : 'Ext.data.Store',
storeId: 'formStore',
config : {
model : 'dynamicForm.model.Form',
proxy : {
type : 'ajax',
url : 'form.json',
reader : {
type : 'json',
rootProperty : 'form.fields'
}
},
autoLoad: true
}
});
Das, was ich versucht habe, so für.
var fromval = Ext.create('dynamicForm.store.FormStore');
fromval.load(function (){
console.log(fromval);
//i added register view which having form panel with id "testForm"
Ext.Viewport.add({
xtype : 'register'
});
for(i=0; i< fromval.getCount(); i++) {
console.log("------");
Ext.getCmp('testForm').add({
xtype: fromval.getAt(i).data.field,
label: fromval.getAt(i).data.name,
value: fromval.getAt(i).data.value,
options: [
{text: "First Option", value: "first"},
{text: "Second Option", value: "second"},
{text: "Third Option", value: "third"}
]
});
}
});
zwei text fileds und Datum woking gut, aber ich weiß nicht, wie man Optionen für das select-Feld aus Speicher, nur gehört, codiert jetzt.
über alle auf der Grundlage der oben genannten json-Daten, die ich brauche zu erstellen sencha Formular dynamisch.
- whathaveyoutried.com ?
- ich kann nicht finden, alle post mit meiner Frage in dieser website.
- Nein, es gibt nichts in Bezug auf Ihre Frage. Aber haben Sie den Artikel gelesen ? Aus dem Artikel: "Wenn Sie Entwickler sind und Sie sind über Fragen, die ein anderer Entwickler eine technische Frage (über ein forum, per E-Mail, über einen chat-channel, oder in person), die Sie besser bereit sein, eine Antwort auf die Frage "Was haben Sie versucht?" [...] Das problem ist, dass diese person das problem lösen Technik zu Fragen, für die Lösung. Nicht um zu suchen Beratung, wie Sie die Aufgabe angehen, sondern nur nach dem code gefragt, vollständig ausgebildet und bereit zu gehen"
- ich schaue nie für fertig-code in stack-überlauf, ich will einfach nur eine Idee und ich versuche
- Ok, dann, haben Sie Zugriff auf das JSON ? Können Sie es ändern, bevor es gesendet/abgerufen ?
- ich aktualisiert, was ich versucht habe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Besser zu Folgen MVC-Struktur:
Erstellen Sie ein Modell:
Einen store mit proxy:
Dem formData.json-Datei:
Verwenden und dann die FormStore um die form zu füllen Daten, wie Sie benötigen.
var opt= formval.getAt(i).raw.options; if(opt) { console.log(opt); }
Es logs, konnte nicht herausfinden, ein richtiger Weg, allerdings noch nicht.Wird es automatisch geschieht, wenn Sie stecken Sie es in jede extjs-Komponente Inhalt :