2012-02-24 11 views
0

Secha Touchを使用したシンプルなフォームを開発しています。Achaxproxyを使用したSencha Touchデータストアのレコードの更新

App.stores.shopinglists = new Ext.data.Store({ 
model: 'ShopingList', 
autoLoad: false, 

proxy: new Ext.data.AjaxProxy({ 
    type: 'ajax', 
    url: 'http://localhost:2795/ShopingListService/', 
    reader: { 
     type: 'json', 
     root: 'ResultData', 
     totalProperty: 'Total', 
     successProperty: 'Success' 
    }, 
    writer: { 
     encode: true, 
     type: 'json' 
    } 

}) 
}); 

ビューが正常に読み込まれ、アイテムのリストが表示され、編集できます。ただし、更新ボタンをクリックすると、次のエラーが表示されます。 Uncaught Error:ServerProxyを使用していますが、URLを提供していません。

ここには何がありますか?プロキシにはURLが定義されていますが、更新が呼び出されると定義されません。

編集:ボタンはコントローラの操作を呼び出すだけです。

onSaveAction: function() { 
    var model = this.getRecord(); 
    Ext.dispatch({ 
     controller: 'ShopingLists', 
     action: (model.phantom ? 'save' : 'update'), 
     data: this.getValues(), 
     record: model, 
     form: this 
    }); 
}, 

コントローラによって実行されるコードはこれです:

update: function (params) { 
    debugger; 
    var tmpshopingList = new App.models.ShopingList(params.data); 
    var errors = tmpshopingList.validate(); 
    if (errors.isValid()) { 
     params.record.set(params.data); 
     params.record.save(); 
     this.index(); 
    } else { 
     params.form.showErrors(errors); 
    } 
}, 
+0

更新ボタンによって実行されたコードを投稿してください。 –

+0

こんにちは: あなたのリプレイに感謝します。 私は自分のfirsコメントの中にコードを入れました。 – Oscar

答えて

2

私は何が起こっているか知っていると思う:モデルは、サーバプロキシを持って知っているが、構成のすべてがコピーされていません。おそらくこれはSencha Touch 1.xのバグです。

proxyの設定を店舗ではなくモデルに入れてみてください。

+0

rdougan、ご協力ありがとうございます!私はrepoとしてLocal Storageのチュートリアルを休止していたので、同じコードがうまくいきました。私はそれが投稿しているモデルにプロキシ設定を置いた! – Oscar

関連する問題