如何防止 ExtJS 在使用模型时更改对象的值?
How to prevent ExtJS changing the value of an object when using a Model?
我目前正在将 Extjs 4.2 迁移到 Extjs 6.2,我只是想保存一个记录。我的代码在 ExtJs 4.2 中运行良好,但在 ExtJs 6.2 中尝试创建时失败。问题在于 data 的值在传递给 Model 后在 Extjs 6.2 中发生了变化。请看附图。
图片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'
}
}
});
我的问题是:
我需要在我的模型中 change/update 做什么,以便数据的值在达到第 371 行后保持不变并且 NOT 拉取您在图 2 中看到的所有随机数据
关于我在模型中遗漏或需要更改的内容有什么想法吗?提前致谢!
您还没有为代理指定 URL。框架中默认使用模型名称。
我目前正在将 Extjs 4.2 迁移到 Extjs 6.2,我只是想保存一个记录。我的代码在 ExtJs 4.2 中运行良好,但在 ExtJs 6.2 中尝试创建时失败。问题在于 data 的值在传递给 Model 后在 Extjs 6.2 中发生了变化。请看附图。
图片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'
}
}
});
我的问题是: 我需要在我的模型中 change/update 做什么,以便数据的值在达到第 371 行后保持不变并且 NOT 拉取您在图 2 中看到的所有随机数据
关于我在模型中遗漏或需要更改的内容有什么想法吗?提前致谢!
您还没有为代理指定 URL。框架中默认使用模型名称。