【问题标题】:How to prevent ExtJS changing the value of an object when using a Model?使用模型时如何防止 ExtJS 改变对象的值?
【发布时间】:2018-03-20 23:22:55
【问题描述】:

我目前正在将 Extjs 4.2 迁移到 Extjs 6.2,我只是想保存一条记录。我的代码在 ExtJs 4.2 中运行良好,但在 ExtJs 6.2 中尝试创建时却失败了。问题是 data 的值在 Extjs 6.2 中在传递给 Model 后会发生变化。请看附图。

图片 1:

查看数据击中模型的价值(第 371 行)

图片 2:

数据之后进入模型的价值(第 371 行)

您注意到数据的值发生了变化。这在 ExtJs 4.2 中不会发生,我希望它在 ExtJs 6.2 中表现相同。

这是我的代码:

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

这是模型的代码:

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

我的问题是: 我需要在我的模型中更改/更新什么,以便在点击第 371 行并且提取您在图 2 中看到的所有随机数据后数据值保持不变

关于我在模型中缺少或需要更改的任何想法?提前非常感谢您!

【问题讨论】:

    标签: javascript extjs extjs4 extjs5


    【解决方案1】:

    您尚未指定代理的 URL。框架中默认使用模型名称。

    【讨论】:

    • Trimboli,实际上我解决了我的问题。您的意见有帮助!谢谢
    • 嗨,Evan 我想知道您是否可以帮助我解决我遇到的面板问题上的鼠标悬停问题?这是问题的链接:stackoverflow.com/questions/47808220/…
    猜你喜欢
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多