ExtJS 4 MVC -Anwendung: Formular undefinierter Fehler
-
27-10-2019 - |
Frage
Ich bin neu in ExtJs 4 und versuche, eine einfache Anwendung im MVC -Stil zu implementieren. Die Dokumentation ist wirklich gut und dies ist eines der Themen, die im Formular Paket -Leitfaden behandelt werden, aber es scheint in meinem Fall nicht zu funktionieren.
Die App kann im Grunde genommen Artikel erstellen, bearbeiten und löschen. Die Erstellung und Bearbeitung befinden sich in Pop-up-Fenstern. Das Popup-Fenster enthält ein Formular mit einem Textfeld und einem HTML-Editor. Bitte klicken Sie auf den folgenden Link. Dies ist der Fehler in der Google Chrome -Konsole, wenn ich im 'Fenster' auf die Schaltfläche Senden klicke.
http://www.freeimageHosting.net/mjig7
Hier ist der Code, den ich geschrieben habe:
Ext.define('AM.model.Article', {
extend: 'Ext.data.Model',
fields: ['name', 'data'],
proxy: {
type: 'rest',
url: 'users/data',
reader: {
type: 'json',
root: 'myJaxBean',
successProperty: 'success'
},
writer: {
type: 'json'
}
}
});
Aussicht:
Ext.define('AM.view.New', {
extend: 'Ext.window.Window',
alias : 'widget.new',
title : 'New Article',
autoShow: true,
fieldDefaults: {
labelAlign: 'top',
msgTarget: 'side'
},
layout: 'fit',
bodyStyle:'padding:5px 5px 0',
width: '70%',
height: '40%',
initComponent: function() {
this.items = [
{
xtype: 'form',
anchor: '99%',
items: [
{
xtype: 'textfield',
name : 'name',
fieldLabel: 'Article Name',
anchor: '99%'
},
{
xtype: 'htmleditor',
name : 'data',
fieldLabel: 'Article',
anchor: '99% -25'
}
],
buttons: [
{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm(), // get the basic form
record = form.getRecord(); // get the underlying model instance
if (form.isValid()) { // make sure the form contains valid data before submitting
form.updateRecord(record); // update the record with the form data
record.save({ // save the record to the server
success: function(user) {
Ext.Msg.alert('Success', 'User saved successfully.')
},
failure: function(user) {
Ext.Msg.alert('Failure', 'Failed to save user.')
}
});
} else { // display error alert if the data is invalid
Ext.Msg.alert('Invalid Data', 'Please correct form errors.')
}
}
},
{
text: 'Cancel',
scope: this,
handler: this.close
}
]
}
],
this.callParent(arguments);
}
});
und schließlich der Code in meinem Controller, der das Fenster sichtbar macht
Regler:
.....
'viewport > panel > panel > tbar button[action=newarticle]' :{
click: this.newArticle
},
....
newArticle: function(button){
var view = Ext.widget('new');
},
Bitte zeigen Sie mich in die richtige Richtung, falls ich etwas falsch mache. Danke im Voraus.
Lösung
Überprüfen Sie die Dokumente GetRecord ():
Gibt die letzte ext.data.model -Instanz zurück, die über LoadRecord geladen wurde
Es ist also klar, dass Sie keinen Datensatz geladen haben, sodass Sie und definierte Rückschläge () zurückgeben. Und Sie erhalten Ihren Fehler weiter.