2

多くのグーグルとデバッグの後、Model インスタンスで 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
    }
});

何が欠けていますか?

4

1 に答える 1

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' }
    }
});
于 2013-08-01T11:40:14.280 に答える