2017-10-09 18 views
0

현재 Extjs 4.2를 Extjs 6.2로 마이그레이션 중이며 단순히 레코드를 저장하려고합니다. 내 코드는 ExtJs 4.2에서 잘 작동하지만 만들려고하면 ExtJs 6.2에서 실패합니다. 문제는 데이터의 값이 Extjs 6.2에서 Model로 전달 된 후에 변경된다는 것입니다. 첨부 된 그림을 참조하십시오.모델을 사용할 때 ExtJS가 객체의 값을 변경하는 것을 방지하려면 어떻게해야합니까?

영상 1 :

값 :

모델을 치는 전에

enter image description here

영상 2 (라인 371) 데이터 의 가치를 살펴 보자 데이터 AFTER 후 Mod 엘 (라인 371)

enter image description here

당신은 데이터 값이 변경 것으로 나타났습니다. 이것은 ExtJs 4.2에서는 발생하지 않으며 ExtJs 6.2에서도 같은 방식으로 동작하기를 원합니다.

여기

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); 
    } 
}); 
} 

folder.js 모델에 대한 코드입니다 :

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' 
    } 
    } 
    }); 

내 질문은 : 내가 무엇을해야합니까 여기

내 코드입니다 변경/업데이트 내 모델 그래서 v 데이터의 값은 Line 371 및 을 치고도 동일하게 유지되지 않음 그림 2에서 볼 수있는 임의의 데이터를 모두 꺼내십시오.

내 모델에서 변경해야 할 것에 대한 아이디어가 있습니까? 미리 감사드립니다.

답변

0

프록시 URL을 지정하지 않았습니다. 프레임 워크의 기본값은 모델 이름을 사용하는 것입니다.

+0

Trimboli, 실제로 문제를 해결했습니다. 귀하의 의견이 도움이되었습니다. 감사합니다 – HenryDev

+0

안녕하세요 에반 당신이 패널 문제에 mouseover 내가 도와 줄 수 있다면 궁금 해서요? 다음은 질문의 링크입니다. https://stackoverflow.com/questions/47808220/how-to-change-image-on-panel-when-doing-mouseover-using-css-extjs – HenryDev