1

こんにちは、sencha でデータベースからデータをロードする例をたくさん見つけました。私はメモを含むリストを作成しようとしています.2番目のステップで、データベースにメモを追加(保存)できるようにしたいと考えています。私はローカルストレージでそれを試します。

今のところ、Arraystore の配列からデータをロードします。プロキシをどこに設定すればよいですか? (店頭かモデルか?)

ストアにデータを挿入するにはどうすればよいですか? 私は現在のarraystoreでそのようなことを試しましたが、運がありませんでした:(これはコードを押すことによって実行されるコードです):

 MyArrayStore.add({title:"newnote",narrative:"bla bla bla",date:now,id:noteid});
    MyArrayStore.sync();

ブラウザー コンソールに次のエラーが表示されます。Uncaught ReferenceError: MyArrayStore is not defined ストアなどのインスタンスを作成しますか?

私のモデルはこれです:答えてくれてありがとう。私はそれをアーキテクトで試します。私のモデルはこれです:

Ext.define('MyApp.model.NoteModel', {
    extend: 'Ext.data.Model',
    alias: 'model.NoteModel',
    config: {
        fields: [
            {
                name: 'id',
                type: 'int'
            },
            {
                name: 'date',
                type: 'date'
            },
            {
                name: 'title',
                type: 'string'
            },
            {
                name: 'narrative',
                type: 'string'
            }
        ],
        proxy: {
            type: 'localstorage',
            id: 'local'
        }
    }
});

そして私の店はこれです:

Ext.define('MyApp.store.MyArrayStore', {
    extend: 'Ext.data.Store',
    requires: [
        'MyApp.model.NoteModel'
    ],

    config: {
        data: [
            {
                title: 'Note 1',
                narrative: 'test1 1'
            },
            {
                title: 'Note 2',
                narrative: 'narrative 2'
            },
            {
                title: '3 ertyyh',
                narrative: 'narrative 3'
            },
            {
                title: '4 asdf',
                narrative: 'narrative 4'
            },
            {
                title: 'Note 5',
                narrative: 'narrative 5'
            },
            {
                title: 'weadf',
                narrative: 'narrative 6'
            }
        ],
        model: 'MyApp.model.NoteModel',
        storeId: 'MyArrayStore'
    }
});
4

2 に答える 2

3

モデルまたはストアにプロキシを設定する必要があります。モデル内でそれを行う方法は次のとおりです。

Ext.define('MyModel', {

extend: 'Ext.data.Model',

config: {
    fields: ['field1'],
    proxy: {
        type: 'localstorage',
        id  : 'my-model-localstorage-id'
    }
});

同じことを店舗で行うこともできます。

その後、「MyArrayStore」がそのようなストアのインスタンスであることを考えると、提案したコードは問題なく動作するはずです。

お役に立てれば。

于 2012-05-02T12:43:06.970 に答える
2

ストア (質問で更新したもの) にアクセスする場合は、次を使用できます。

Ext.StoreManager.get('MyArrayStore')

したがって、たとえば、実行したい操作は次の方法で実行できます。

var store=Ext.StoreManager.get('MyArrayStore');
store.add({title:"newnote",narrative:"bla bla bla",date:now,id:noteid});
store.sync();
于 2012-05-03T12:23:13.423 に答える