jQueryのgetJSONメソッドを使用してcoldfusionデータベースコントローラへの呼び出しが成功しました。返される情報はフォーマットに戻ってくる:getJSONオブジェクトを作成する
{
"COLUMNS": ["PRODUCT_HIERARCHY", "WEBPRODLINE", "POSITION", "FEATURES", "BENEFITS", "LINKS", "VIDEOS", "IMAGE_CUTAWAY", "MARKEDASNEW"],
"DATA": [
["23456689", "ProdName1", "A Feature 1", "A Benefit 1", "url", "vid_url", "img_name", "N"],
["234566891", "ProdName2", "A Feature 2", "A Benefit 2", "url", "vid_url", "img_name", "N"]
]
}
は、私は今、私はその後、ローカルフィルタの代わりに、DBに別の電話をかけることができますオブジェクトとして返された情報を格納したいです。問題はinitializeView関数にあります。ここでは、関連するスクリプトは次のとおりです。
$(document).ready(function() {
var productsFlag = false;
var enableLog = true;
var allProducts = $.getJSON(jsonURL, { method: "getAllProducts", returnformat: "json" }, function(data) {
productsFlag = true;
});
waitOnJson();
function waitOnJson() {
//this shows up in the log
logThis('areProductsReady?');
if (productsFlag) {
//this shows up in the log
logThis('productsFlags ready');
initializeProductView();
} else {
//this shows up in the log
logThis('productsFlags not ready');
t = setTimeout(waitOnJson, 100);
}
}
function initializeProductView() {
//this shows up in the log
logThis('initializeProductView');
//this displays [object Object]
alert(allProducts);
//this displays undefined
alert(allProducts.DATA);
$.each(allProducts.DATA, function(i, item) {
//this doesn't show up in the log
logThis(item[1]);
});
}
//as you can tell, this writes out to a debug console on the page
function logThis(eventString) {
if (enableLog === true) {
$('<p/>').append(eventString).appendTo("#log");
}
}
});
私は問題がgetJSONを返しているかについての理解の私の不足であることを確信しているが、私はどちらかあまりにも多くのカフェインまたは十分ではありませんが持っていたと私はそれを見ていませんよ。助けて!
また、私のブロッキング待機段階の考えはありますか?いくつかの異なる機能でデータを使用できるようにしたいが、ビューを初期化する前にデータが読み込まれるまで待つ必要がある。
お返事ありがとうございます。私はgetJSONでコールバック関数がどのように動作するのかを知っています。しかし、私はコールバック関数の外で初期化しているので、後でビューを後で再初期化する必要があります(たとえば、誰かが商品フィルタをリセットした場合など)。私が上に掲載したのは、データを正しく割り当てていないか、またはinitializeView関数で正しく参照していないことです。 –
コードを少し簡単に説明したので、私はあなたのコメントを読んだ後に上記のいくつかの追加情報を入れました。申し訳ありません。 – jamesmillerio
LOL!私はちょうど私が自分の質問に答えようとしていました。私はあまりにも頑固すぎて、元のコードがうまくいくと確信していました。 –