设置UUID策略会给我一个错误

时间:2012-10-02 09:11:57

标签: extjs sencha-touch sencha-touch-2 uuid

经过大量的谷歌搜索和调试后,我无法弄清楚为什么在我的模型实例中使用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
    }
});

我错过了什么?

1 个答案:

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