我是ExtJS的新手。 我在从ExtJS 4转到ExtJS 5时遇到了问题。
使用ExtJS 4时,evrything工作正常。 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"}
{id: "Books.model.Books-1", title: "test", author: "test", price: "20", qauantity: "20"}
为什么我开始将Books.model.Books-1添加到id时,我所做的就是更改为ExtJS 5
答案 0 :(得分:1)
查看此升级指南http://docs.sencha.com/extjs/5.0/whats_new/5.0/extjs_upgrade_guide.html#Models
在ExtJS5 id
字段中,如果值不存在则自动生成。以下是本文的文字:
创建记录并且没有给出“id”时,将生成一个记录。这是由Model的“标识符”配置(来自Sencha Touch和以前在Ext JS 4中的“idgen”)处理的。它在记录上(使用“getId”访问)以及“data”对象中的“id”作为“idProperty”。在Ext JS 4中,id通常会被复制到internalId。这已不再是这种情况。 internalId是一个单独生成的值,在所有记录中都是唯一的,不应更改。但是,id可能会被更改。
答案 1 :(得分:1)
就像Nikolay发布的那样,ExtJs 5.X中的模型已被更改 Model实例应始终具有一个标识字段,即&#34; id&#34;默认情况下,如果您没有为该ID提供值,那么Ext将为您生成它。要将id分配给另一个字段,您必须定义idProperty配置并为其指定字段名称。
这是“模型”源代码中的摘要 -
&#34; id&#34;字段和
生成唯一键*idProperty
* *模型定义始终具有标识字段,它应为每个实例。默认情况下,名为&#34; id&#34;将用*创建 &#34; id&#34;的{@link Ext.data.Field#mapping mapping}。这是因为 模型定义中提供的默认* {@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