ExtJS 4 MVC Application: Form error non définie
-
27-10-2019 - |
Question
Je suis nouveau à ExtJS 4 et essaie de mettre en œuvre une application simple dans le style MVC. La documentation est vraiment bon et c'est l'un des sujets abordés dans le guide d'emballage de forme, mais il ne semble pas fonctionner dans mon cas.
L'application peut essentiellement créer, modifier et à la création de suppression de articles.Procédé et l'édition sont dans les fenêtres pop-up. La fenêtre pop-up contient un formulaire avec un champ de texte et éditeur HTML. S'il vous plaît cliquer sur le lien ci-dessous, c'est l'erreur dans la console Google Chrome lorsque je clique sur le bouton Soumettre dans la « fenêtre »
http://www.freeimagehosting.net/mjig7
Voici le code que j'ai écrit Modèle:
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'
}
}
});
Voir:
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);
}
});
et enfin le code dans mon contrôleur qui rend visible la fenêtre
Contrôleur:
.....
'viewport > panel > panel > tbar button[action=newarticle]' :{
click: this.newArticle
},
....
newArticle: function(button){
var view = Ext.widget('new');
},
S'il vous plaît me diriger dans la bonne direction dans le cas où je fais quelque chose de mal. Merci à l'avance.
La solution
Consultez la documentation getRecord () :
Renvoie la dernière instance de Ext.data.Model qui a été chargé par loadRecord
il est donc clair que vous ne l'avez pas charger un enregistrement, ce rendement getRecord () non défini. Et vous obtenez encore plus votre erreur.