我是ExtJS的新手。从ExtJS 4迁移到ExtJS 5时遇到问题。
当使用ExtJS 4时,一切都运行得很好。CRUD正常工作。但是当我切换到ExtJS 5时,特别是当我在index.php中从
<link rel="stylesheet" type="text/css"
href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css">
<script type="text/javascript"
src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script>至
<link rel="stylesheet" type="text/css"
href="ExtJS5/packages/ext-theme-classic/build/resources/ext-theme-classic-all.css">
<script type="text/javascript"
src="ExtJS5/build/ext-all.js"></script>
<link rel="stylesheet" type="text/css"
href="ExtJS5/packages/ext-theme-classic/build/ext-theme-classic.js">创建新的停止工作。
在ExtJS 4中,JSON如下所示
{id: "",title: "test", author: "test", price: "20", quantity: "20"}
在ExtJS 5中
{id: "Books.model.Books-1", title: "test", author: "test", price: "20", qauantity: "20"}为什么它开始添加Books.model.Books-1到id,而我所做的只是更改为ExtJS 5
发布于 2015-03-10 23:02:53
请查看此升级指南http://docs.sencha.com/extjs/5.0/whats_new/5.0/extjs_upgrade_guide.html#Models
如果值不存在,则自动生成In ExtJS5 id字段。以下是这篇文章的文本:
当创建一条记录并且没有给出“id”时,将会生成一个。这是由Model的“identifier”配置(来自Sencha Touch和ExtJS4中以前的“idgen”)处理的。它作为“id”放在记录上(使用“getId”访问),也作为“idProperty”放在“data”对象中。在ExtJS4中,id通常会被复制到internalId。现在已经不是这样了。internalId是一个单独生成的值,它在所有记录中都是唯一的,不应更改。但是,id可能会更改。
发布于 2015-03-10 23:09:50
就像Nikolay发布的那样,模型在ExtJs5.X中已经改变了。模型实例应该总是有一个标识字段,默认情况下是" id“,如果你没有为这个id提供一个值,那么Ext会为你生成它。要将id分配给另一个字段,您必须定义idProperty配置并为其分配字段名称。
以下是模型源代码中的解释:
"id“字段和
idProperty**模型定义总是有一个标识字段,应该为每个字段产生一个唯一的键*
实例。默认情况下,会创建一个名为"id“的字段,其中* {@link Ext.data.Field#mapping映射}为"id”。这是因为模型定义中提供了默认的* {@link #idProperty}。**要更改哪个字段是标识字段,请使用{@link #idProperty}配置。
下面是它在初始化过程中所做的事情-
// Must do this after running the initializeFn due to converters on idField
if (!(me.id = id = data[idProperty]) && id !== 0) {
if (session) {
identifier = session.getIdentifier(cls);
id = identifier.generate();
} else if (modelIdentifier === identifier) {
id = internalId;
} else {
id = identifier.generate();
}
data[idProperty] = me.id = id;
me.phantom = true;
}还要检查源代码-- http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/source/Model2.html#Ext-data-Model
https://stackoverflow.com/questions/28964806
复制相似问题