经过大量的谷歌搜索和调试后,我无法弄清楚为什么在我的模型实例中使用UUID策略时出现错误。
我使用localStorage在用户的设备上存储远程数据,ST2推荐(他们说“你需要”)在我的模型实例中使用UUID标识符来生成唯一ID。
如果我不这样做,我会:
[WARN][Anonymous] Your identifier generation strategy for the model does not ensure unique id's. Please use the UUID strategy, or implement your own identifier strategy with the flag isUnique.
如果我这样做,我会
Uncaught TypeError: Cannot call method 'substring' of undefined
这是我的模特:
Ext.define("MyApp.model.News", {
extend: 'Ext.data.Model',
config : {
idProperty: "localId",
identifier: {
type: 'uuid'
},
fields : [ {
name: "localId",
type: "auto"
},{
name : "id",
type : "integer"
}, {
name : "title",
type : "string"
}[...]],
proxy: {
type: 'localstorage',
id : 'proxyNews'
}
}
});
localStorage商店:
Ext.define('MyApp.store.NewsLocalStorage', {
extend: "Ext.data.Store",
config: {
storeId: 'newsLocalStorage',
model: "Lmde.model.News",
autoLoad: true
}
});
我错过了什么?
答案 0 :(得分:0)
嗯,我只是将模型添加到应用程序中并且可以正常工作。 (我猜Lmde = MyApp)
我加入了发布会:
MyApp.News = Ext.create('MyApp.model.News');
这是模型再次
Ext.define("MyApp.model.News", {
extend: 'Ext.data.Model',
config: {
idProperty: "localId",
identifier: { type: 'uuid' },
fields: [
{ name: "localId", type: "auto" },
{ name: "id", type: "integer" },
{ name: "title", type: "string" }
],
proxy: { type: 'localstorage', id: 'myapp.news' }
}
});