2017-10-09 10 views
0

Je migre actuellement Extjs 4.2 vers Extjs 6.2 et j'essaie simplement de sauvegarder un enregistrement. Mon code fonctionne très bien dans ExtJs 4.2, mais il échoue dans ExtJs 6.2 lors de la tentative de création. Le problème est que la valeur de données change dans Extjs 6.2 après l'avoir transmis au modèle. S'il vous plaît voir photo ci-jointe.Comment empêcher ExtJS de changer la valeur d'un objet lors de l'utilisation d'un modèle?

IMAGE 1:

Jetez un oeil à la valeur des données AVANT frapper le modèle (ligne 371)

enter image description here

IMAGE 2:

Valeur données APRÈS en appuyant sur le mod el (ligne 371)

enter image description here

Vous avez remarqué que la valeur des changements de données. Eh bien, cela ne se produit pas dans ExtJs 4.2 et je veux qu'il se comporte de la même manière dans ExtJs 6.2.

Voici mon code:

folder.js

if (folderNameIsValid(s)) 
    { 
    // create the new folder 
     var data = { 
     typeId : me.typeId, 
     name : s, 
     loaded : true 
    }; 

    if (me.clientId) data.clientId = me.clientId; 
    if (me.userId) data.userId = me.userId; 
    if (me.recordId) data.recordId = me.recordId; 
    if (me.empId) data.employeeId = me.empId; 
    if (pn !== rn) data.parentFolderId = pn.get('folderId'); 

    var node = Ext.create('App.model.FolderTreeNodeDisplay', data); 

    node.save({ 
     callback : function() 
     { 
     pn.appendChild(node); 

     pn.expand(); 

     sm.select(node); 
    } 
}); 
} 

Code est ici pour le modèle:

Ext.define('App.model.FolderTreeNodeDisplay', 
{ 
extend : 'Ext.data.Model', 
idProperty: 'folderId', 

fields : [ 
    {name: 'folderId', type: 'int', useNull: false}, 
    {name: 'typeId', type: 'int', useNull: true}, 
    {name: 'recordId', type: 'int', useNull: true}, 
    {name: 'employeeId', type: 'int', useNull: true}, 
    {name: 'userId', type: 'int', useNull: true}, 
    {name: 'clientId', type: 'int', useNull: true}, 
    {name: 'permanent', type: 'string', defaultValue: 'N'}, 
    {name: 'fixed', type: 'string', defaultValue: 'N'}, 
    {name: 'active', type: 'string', defaultValue: 'Y'}, 
    {name: 'name', type: 'string', convert: Ext.htmlDecode}, 
    {name: 'parentFolderId', type: 'int', useNull: true}, 

    // domain fields 
    {name: 'createdBy', type: 'string', persist: false}, 
    {name: 'creationDate', type: 'date', dateFormat: 'c', useNull: true, persist: false}, 
    {name: 'lastUpdatedBy', type: 'string', persist: false}, 
    {name: 'lastUpdatedDate', type: 'date', dateFormat: 'c', useNull: true, persist: false}, 

    // node fields 
    {name: 'iconCls', type: 'string', persist: false}, 
    {name: 'leaf', persist: false}, 
    {name: 'expanded', persist: false}, 
    {name: 'parentId', persist: false} 
], 

proxy: { 
    type: 'rest', 
    api: { 
     create : '/rs/rest/folder/create' 
    }, 
    reader: { 
     rootProperty: 'data' 
    } 
    } 
    }); 

Ma question est: Que dois-je changer/mettre à jour dans mon modèle de sorte que le v aleur de données reste le même après avoir frappé la ligne 371 et pas tirer toutes les données aléatoires que vous voyez dans l'image 2

Des idées sur ce que je suis manquant ou besoin de changer dans mon modèle? Merci d'avance!

Répondre

0

Vous n'avez pas spécifié d'URL pour le proxy. La valeur par défaut dans le framework est d'utiliser le nom du modèle.

+0

Trimboli, en fait j'ai résolu mon problème. Votre contribution a aidé! Merci – HenryDev

+0

Salut Evan Je me demandais si vous pouviez m'aider s'il vous plaît avec un mouseover sur le problème de panneau que je rencontre? Voici le lien de la question: https://stackoverflow.com/questions/47808220/how-to-change-image-on-panel-when-doing-mouseover-using-css-extjs – HenryDev