これは新しいCouchDBドキュメントを作成しようとするときに使用するコード(CODEを参照)です。ドキュメントには、1つまたは複数の既存のCouchDBドキュメント(履歴追跡)が含まれています。
JSON::
{
"_id": "b3360050039389801524044daf1c963c",
"_rev": "1-2a5da40ce9a191b4decc27411ec9a181",
"hodoc_type": "INCOMMING DELIVERY NOTE",
"user_from": "ANS USER",
"status": "INSTALLED ON SITE",
"category": "ASET",
"location": "MTX SPARE",
"doctype": "hodoc",
"items": [
{
"serial_number": "310310007590",
"status": "STORED IN WAREHOUSE",
"doctype": "data",
"supplier": "INTRACOM",
"po": "0",
"category": "SPARE PART",
"user_out": "IGOR JURUKOV",
"mac": "NULL",
"eqtype": "IDU",
"location": "MTX SPARE",
"location_comment": "NULL",
"date_in": "2011-05-06",
"date_out": "2011-05-06",
"prf": "0",
"part_number": "Z00-404/63.01",
"user_in": "KOTE JANAKIEVSKI",
"bar_code": "0",
"manufacturer": "INTRACOM",
"rma": "NULL",
"product_name": "PSU for IDR-SM"
},
{
"serial_number": "310407016955",
"status": "STORED IN WAREHOUSE",
"doctype": "data",
"supplier": "INTRACOM",
"po": "0",
"category": "SPARE PART",
"user_out": "IGOR JURUKOV",
"mac": "NULL",
"eqtype": "IDU",
"location": "MTX SPARE",
"location_comment": "NULL",
"date_in": "2011-05-06",
"date_out": "2011-05-06",
"prf": "0",
"part_number": "Z00-404/63.02",
"user_in": "KOTE JANAKIEVSKI",
"bar_code": "0",
"manufacturer": "INTRACOM",
"rma": "NULL",
"product_name": "PSU for IDR-SM"
}
]
}
CODE:
var docids = new Array();
var items = new Array();
$('div#divitemsout').find('img.item-out-remove').each(function() {
var id = $(this).attr('attrid');
if (docids.indexOf(id) == -1) {
docids.push(docid);
}
var item = new Object;
$.getJSON('/whdb/' + id, function(data) {
$.each(data, function(key, val) {
if (key !== "_id" && key !== "_rev") {
item[key] = val;
}
});
// Check No.1
//alert(item.manufacturer);
});
// Check No.2
//alert(item.manufacturer);
items.push(item);
});
問題や質問がある:ライン怒鳴る新しく作成されたドキュメントの結果のJSONは(JSONを参照)のようなものですチェックNo.2がコミントされている場合、結果のjsonドキュメントの「items」部分は[]です。チェック番号2の警告(item.manufacturer)がコメント解除されると、内容が「未定義」のアラートが表示されますが、例のように結果のjsonドキュメントの「items」部分が正しく設定されます。なにか提案を?
私はすでにそれを試してみました。同じ問題。入力いただきありがとうございます。 –
申し訳ありませんGjorgji、私はあなたを信じていません。 'items'配列の内容を記録する前に' getJSON'コールバックメソッドが起動するまで待っていますか? – sje397
私は質問を理解できませんが、私が言う必要があることが1つあります。チェックNo.1のアラートのコメントを外すと、item.manufacturerに正しい値が得られます。チェック・No.2のアラートのコメントを外すと、item.manufacturerの「未定義」となり、getJSONコードの内側でも外側でも問題ありません。 –