2011-11-15 12 views
3

AJAXプロキシがHTTP要求を生成したかどうかを検出する方法が挿入/更新または削除操作であるかどうかはわかりません。Sencha Touch 1.1でAJAXプロキシを使用してストアからレコードを削除する

これらは(simpsons.json)私のデータです:

[ 
    { 
     "id": 1, 
     "firstName": "Homer" 
    }, 
    { 
     "id": 2, 
     "firstName": "Marge" 
    }, 
    { 
     "id": 3, 
     "firstName": "Bart" 
    }, 
    { 
     "id": 4, 
     "firstName": "Lisa" 
    } 
] 

これは私の煎茶タッチ1.1のコードです:このコードを実行する

Character = Ext.regModel('Character', { 
    fields: [ 
     {name: 'id', type: 'int'}, 
     {name: 'firstName', type: 'string'} 
    ] 
}); 

SimpsonsStore = new Ext.data.Store({ 
    model: 'Character', 
    proxy: { 
     type: 'rest', 
     url: 'simpsons.json' 
    }, 
    autoLoad: true 
}); 

SimpsonsStore.on('load', function(store, records, success) { 

    // add record 
    store.add({id: 5, firstName: 'Maggie'}); 

    // update record 
    var margeRecord = store.findRecord('firstName', 'Marge'); 
    margeRecord.set('firstName', 'Marjorie'); 

    // delete record 
    var homerRecord = store.findRecord('firstName', 'Homer'); 
    store.remove(homerRecord); 

    // sync store 
    store.sync(); 
}); 

は、これらのHTTPリクエストを生成します。

POST /simpsons.json/5?_dc=1321377134028 HTTP/1.1 

{"records":[{"id":5,"firstName":"Maggie"}]} 

PUT /simpsons.json/2?_dc=1321377142625 HTTP/1.1 

{"records":[{"id":2,"firstName":"Marjorie"}]} 

DELETE /simpsons.json/1?_dc=1321377148457 HTTP/1.1 

{"records":[{"id":1,"firstName":"Homer"}]} 

同様に、各操作には独自のHTTP要求メソッド(動詞)があります。

私は「AJAX」に「休む」生成されたHTTP要求からプロキシタイプを変更するこれらのようになります。

POST /simpsons.json?_dc=1321376787918 HTTP/1.1 

{"records":[{"id":5,"firstName":"Maggie"}]} 

POST /simpsons.json?_dc=1321376792207 HTTP/1.1 

{"records":[{"id":2,"firstName":"Marjorie"}]} 

POST /simpsons.json?_dc=1321376798158 HTTP/1.1 

{"records":[{"id":1,"firstName":"Homer"}]} 

これらは非常によく似ています。これは、挿入操作または更新操作の問題ではありません。しかし最後のHTTP要求がであることをバックエンドが検出して、挿入も更新もしないが、の削除アクションをどのように検出できるか?

Sencha Touch 2.0でExt JS 4に存在する「api」設定オプションが見つかりましたが、Sencha Touch 1.1のAJAXプロキシの特定のアクションに異なるURLまたはパラメータを定義する方法が見つかりませんでした。

助けてください。

おかげで、

ウーヴェ

答えて

2

http://docs.sencha.com/touch/1-1/#!/api/Ext.data.AjaxProxyスクロールダウンURL生成するためにここに行き、Ext.data.Operationオブジェクトとその使用方法について読みます。 AjaxProxyのactionMethodsプロパティは

{create: "POST", read: "GET", update: "POST", destroy: "POST"} 

にデフォルトで設定されている

+0

感謝を。私はすでにこれを読んでいます。これらの例はすべて、プロキシのreadメソッドにパラメータとしてこのようなカスタム操作を渡す方法を示しています。しかし、私は、そのシンクメソッドを呼び出す店で働いています。私は、これらの例が、生成されたHTTPリクエストをそのアクションに応じて区別するのに役立つことがわかりません。お知らせ下さい。 – urk

2

あなたは、単にそれを上書きすることができます。

store.getProxy().actionMethods = { 
    create: "POST", 
    read: "GET", 
    update: "PUT", 
    destroy: "DELETE" 
}; 
関連する問題