問題タブ [jsonstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-binding - JsonStoreへのデータのロード
いくつかの単純なデータをJsonStoreに取り込もうとしていますが、機能していないようです。コードは例とほとんど同じです。
残念ながら、これは機能しません。テーブルは行なしでロードされ、ストアのカウントは68です(サーバーから返され、経由で取得されますlistview.getStore().getCount()
)。JsonStoreをArrayStoreといくつかの静的データに置き換えると、それらを見ることができます。
からの結果/items/list
は次のとおりです。
これを修正するにはどうすればよいですか?これをデバッグするにはどうすればよいですか?
編集:レコード数に関する情報を更新しました
combobox - Null 値を使用した EXTJS ストアの問題 -- useNull: 影響はありません --ヘルプ?
皆さん、
JSONStore に裏打ちされたコンボボックス コンポーネントがあります。ストアにロードされたデータは、コンボボックスの値に対して null を返しています。値は int です。JSON デコード プロセスは、null 値をゼロに変換しています。バッキングストアに存在しない pk, zero を見つけようとすると、コンボボックスのレンダリングが失敗します。
data.Field オブジェクトの useNull: config オプションを見つけて、3.3.0 Final にアップグレードし、コンボボックスの int 値を useNull:true に設定しました。残念ながら、これはまったく影響を与えていません。デコードされた値は、まだ null からゼロに変更されています。
JSON フィールドのデータが null のときにフィールドをゼロに設定しない方法についてのアイデアはありますか?
これが何が起こっているかの写真です。data: 値はゼロですが、JSON 値は null です。
ありがとう!
(gah! 評判が 10 未満なので、写真を直接投稿することはできません。ここで確認してください: debug pic )
また、ここに私の店のフィールド構成があります:
extjs - JsonStore のデータの異なるセクションを読み取る複数の JsonReader
次のようなjson文字列があるとします: コード:
{"Staff":[{"id":1,"name":"John"},{"id":2,"name":"Mary"},{"id":3,"name":"Sandra"}],"Students":[{"id":2,"name":"Peter"},{"id":3,"name":"Carl"},{"id":4,"name":"Hodges"}]}
(注: より適切な形式の json 文字列を見たい場合は、http://json.parser.online.fr/に貼り付けてください)
そして、cmbStaff と cmbStudents の 2 つのコンボボックスがあります。両方のコモボックスを同じストアにバインドすることは可能ですが、jsonreaders は異なりますか? つまり、cmbStaff の datareader は root: 'Staff' の文字列を読み取り、cmbStudent は root 'Students' の文字列を読み取りますか?
これは、ストアによって作成される AJAX 取得の量を節約し、コンボボックスごとに異なるストアを用意するためです (私のフォームに 20 個のコンボボックスがあると想像してください!)。
何か案は?さらに情報が必要な場合は、お気軽にお知らせください。ありがとうございます。
combobox - ComboBox: valueField が数値の場合、POST で空の文字列が送信されます。サーバーに null を渡すにはどうすればよいですか?
全て、
Extjs の JSONStore を使用して POST 経由で新しいレコードを作成しようとすると、キャスト例外が発生します。空の文字列がサーバーに渡され、サーバーがそれを整数に変換しようとすると、例外が発生します。コンボ ボックスの valueField は、int 定義のフィールドに設定されます。データストア フィールドは次のとおりです。
コンボボックスの定義は次のとおりです。
POST を送信するために使用される JSONStore は、奇妙なことに、変更されていないフィールドを送信しないように JSONWriter を構成したにもかかわらず、コンボボックスの値を空の文字列として送信します。
サーバーに送信される POST 値: ....,"secondaryIncidentTypeId":"",...
<-- コロンの後の空の文字列に注意してください。
次に、secondaryIncidentTypeArrayStore を示します。
空の文字列の手動チェックを作成し、文字列が空の場合は null に設定しようとしています。これはかなり厄介なようです。フォーム送信時にサーバーに何も返さないか、または null 値を送信する正しい方法は何ですか?
ありがとう!
exception - ExtJ。JsonStore.insert() は例外を引き起こします
EditorGridPanel
新しいレコードを追加するためのツールバー ボタンがあります。1 つのシナリオを除いて、すべて正常に動作します。データベースに既に存在するレコードを挿入しようとすると、サーバーから次のメッセージが返されます。
ただしgrid
、赤い三角形でマークされた新しい行を作成します。その後、新しいレコードを挿入しようとすると (データベースに存在しない場合でも)、サーバー側ではすべて正常に動作しますが、firebug で「キャッチされていない例外」が発生します。それは言います:
何故ですか?
編集 私はそれを発見しました:
新しいレコードを挿入しようとすると、パラメーターdata
を指定してポストリクエストをサーバーに送信する挿入メソッドを使用します (encode は true、listful は true):
サーバーから取得します:
その後、同じ名前のアイテムを作成しようとします:
だから私は得る:
サーバーから。
次に正しいアイテムを作成しようとすると、ストアは2つのアイテムを含む配列を送信します
ただし、サーバーは最初の (最新の) アイテムのみを作成して送り返します。
そのため、ストアがサーバーに 2 つのアイテムを作成するように要求しているにもかかわらず、1 つだけが返送されるため、エラーが発生する可能性があります。
では、どのように対処すればよいのでしょうか? 再度、不合格品の依頼を出さないようにすることはできますか?
extjs - 削除/削除イベントをキューに入れて後で起動するには、Extjseditorgridストアが必要です
ユーザーが注文からメモを削除できるフォームがあります。ユーザーが保存ボタンをクリックしない限り、メモストアが削除されたメモの破棄URLを呼び出さないようにします。ストアでsuspendEvents(true)を呼び出し、後でユーザーが[保存]をクリックしたときにresumeEventsを呼び出して、削除されたすべてのメモの破棄URLに投稿できるようにする必要がありますか?これを行うためのより良い方法はありますか?
json - extjsストアのエラー処理
Ext.data.Store
新しいを作成するときに、インスタンスで例外を処理しようとしていますExt.data.Record
。サーバーが次のjsonで応答した場合:
サーバーがHTTP200応答を返しても、タイプ'request'の例外が発生します。
'リモート'エラーを取得するには、root
プロパティを使用してオブジェクトを作成する必要があります
...しかし、私はこれを望んでいません。この動作を変更する方法はありますか?
また、ストアにレコードを挿入すると、関連付けられたグリッドに自動的に追加されますが、エラーが発生した場合はそこに残るため、エラーが発生するたびにストアをリロードする必要があります。これを行うためのより良い方法はありますか?
extjs - jsonのサーバーから返されたカスタムプロパティにアクセスするExt.JsonStore
json形式でデータを返すEXtJSWebアプリケーションがあります。結果はExtJSグリッドにページ表示され、pagingToolbarによって処理されます。私はslidingPagerプラグインを使用してページを選択しています。ユーザーがスライダーでページを選択するときに必要なのは、ページ番号にそのページの最初の結果のタイトルを追加で表示することです。
したがって、jasonデータでは、サーバーはデータなどをカウントして記録するために追加で返します。実際には、各ページの最初の結果のタイトルの配列であるヘッダーと呼ばれるプロパティを追加しています。
私が知らないのは、この新しいプロパティにアクセスして処理する方法です。これにより、たとえば10ページ目でjsonデータのヘッダープロパティの10番目のアイテムを取得できます。
よろしくお願いしますアンドレアス
sencha-touch - jsonストアのSenchaタッチリスト
リスト内のデータを保持するストアに問題があります。ストアはロードを実行していますが、リストはロード中のままです。これは間違っています。ありがとうございます。
とphpからのjsonの答え
extjs - ComboBoxは、クリックされたときにのみdisplayFieldを表示します
Ext.Windowを介して表示するEditorGridPanelがあります。
resources
Ajax呼び出しで取得したJsonデータです。
データ例:{"data":[{"id":"1","allowed":"1","roleId":"0","resource":"nothing"}]}
問題は、ComboBoxのdisplayFieldが、ComboBoxをクリックしたときにのみ表示されることです。クリックすると、「許可」、「許可されていません」の選択肢が表示されます。フォーカスを外すと、値が「1」、「0」と表示されます。
クリックしていなくてもdisplayField-valuesを表示するにはどうすればよいですか?
編集: Narendra Kammaの応答に続いて、コードを次のように編集しました。
これは素晴らしく機能します。