2011-09-09 8 views
0

人、Ajaxコールバックでコントローラ/モデル/ストア/ビューを取得する方法

バックエンド開発用のEXTJS MVCフレームワークを使用しているプロジェクトで作業しています。

は、今私はここに私のコードの抜粋であるAjaxのコールバック

にコントローラ/モデル/ストアを取得するには困っています。私はコントローラの中でAjaxに電話をかけています。

Ext.Ajax.request({ 
    url: 'http://localhost:8080/gdltest/gdl_service.cgi', 
    jsonData: jRequest, 
    method: 'POST',  
    success: function (response,options) { 
     var jsonData = Ext.JSON.decode(response.responseText); 
     var jData = jsonData.results.data; 

私は応答からデータを取得すると、私はより多くのアクションを行うために、コントローラ/モデル/ストアを取得したいが、私はそれらを取得する方法がわからない:(

は非常にありがとう多くのあなたの助けのために:

答えて

2

successの機能は正しいです。サーバーから戻ってくる応答を確認してください。また、urlは正しいですか?通常は、絶対パスではなく、リソースへの相対パスが与えられます。リクエストはサーバーに到達していますか?それが返信されているデータに問題があると思うのですが。開発中にsafeオプションも使用する必要があります。サーバーから返されたJsonが適切な形式でない場合、safeオプションはエラーをスローします。ドキュメントから:

decode(String json, [Boolean safe]) 

安全:nullを返すまたはJSONが無効 ある場合に例外をスローするかどうか。

EDIT:あなたは成功コールバック内this演算子を使用したい場合は、scope設定を指定します。以下の例:

Ext.Ajax.request({ 
     url: 'http://localhost:8080/gdltest/gdl_service.cgi', 
     jsonData: jRequest, 
     method: 'POST',  
     success: function (response,options) { 
      var jsonData = Ext.JSON.decode(response.responseText); 
      var jData = jsonData.results.data; 
     }, 
     scope : this //this will be the object form which the Ajax.request is called, and not Ajax.request itself or you can specify any other object you desire. 
+0

こんにちは、Varun Achar、私は自分自身を明確にしませんでした。私は応答データを正しく得ることができるからです。私が困惑しているのは、コールバック成功関数内にコントローラ/モデル/ストアを取得する方法です。 – wubo

+0

私はあまり理解しませんでした。コールバックの中で 'myStore.getCount()'と直接使用するときに直面している問題は何ですか? Lookはスコープの問題のようなものです。 –

+0

ありがとうございました。あなたのアプローチは本当に効果的です。 COOOOOL :) – wubo

関連する問題