0

シンプルなレストストアがあり、いくつかのレコードを入力した後、create 関数を呼び出して、レコードの配列をサーバーに投稿リクエストを送信しようとしています。POST 要求が送信されますが、レコードの配列ではなく 1 つのレコードのみが送信されます。更新 - このレコードには値が空のフィールドがあることを忘れていましたが、ストアに値を入力しているため、これも奇妙です。

私は失速した。どこで間違ったのか教えてください。ありがとう。

私のコードサンプル:

Ext.define('my.store.testStore',{
    extend: 'Ext.data.Store',
    storeId: 'teststore',
    model: 'my.model.testModel',
    proxy: {
        type: 'rest',
        url: 'http://someurl.ru',
        reader: 'json'
    }
});

Ext.define('my.model.testModel',{
    extend: 'Ext.data.Model',
    fields: [
      {name: 'name', type: 'string'},
      {name: 'phone', type: 'string'},
      {name: 'email', type: 'string'}
    ]
});

var namesList = [Ext.create('my.model.testModel',{
  'name':'test name1',
  'phone':'343-343',
  'email':'test@test.com'
}),
Ext.create('my.model.testModel',{
  'name':'test name2',
  'phone':'6345',
  'email':'test@test.com'
}),
Ext.create('my.model.testModel',{
  'name':'test name2',
  'phone':'24324',
  'email':'test@test.com'
})
];

var testStore = Ext.create('my.store.testStore');
testStore.loadData(namesList);
testStore.create();
4

2 に答える 2

1

testStore.create()の代わりに testStore.sync( )を使用する必要があります

別のこと:

  1. testStore.create() - この関数はオブジェクトを最初のパラメーターとして取り、モデルのインスタンスを作成してからサーバーに送信します。パラメータなしで「create」が呼び出された場合、デフォルトで「」に設定されているフィールドdefaultValueの値に基づいてモデルのインスタンスが作成されます。これにより、空の値で応答が得られます。
  2. ネームリストについて。3 番目のモデルに ")" を追加するのを忘れました。

    var namesList = [Ext.create('my.model.testModel',{
      'name':'test name1',
      'phone':'343-343',
      'email':'test@test.com'
    }),
    Ext.create('my.model.testModel',{
      'name':'test name2',
      'phone':'6345',
      'email':'test@test.com'
    }),
    Ext.create('my.model.testModel',{
      'name':'test name2',
      'phone':'24324',
      'email':'test@test.com'
    })//Here was missed ")"
    ];
    
于 2013-03-28T18:59:46.170 に答える
0

素晴らしい時間を過ごした後、この問題が再び発生したため、とにかく解決する必要がありました. そしてついに、実用的な解決策を見つけることに成功しました。ポイントは、batchActions: true を store に追加することだけです。このような:

Ext.define('my.store.testStore',{
    extend: 'Ext.data.Store',
    storeId: 'teststore',
    model: 'my.model.testModel',
    proxy: {
        type: 'rest',
        url: 'http://someurl.ru',
        reader: 'json',
        batchActions: true
    }
于 2014-06-27T09:49:57.790 に答える