Это код (см. КОД), который я использую, когда пытаюсь создать новый документ CouchDB. Документ содержит один или несколько существующих документов CouchDB (отслеживание истории). Результирующий JSON (см. JSON) для вновь созданного документа выглядит примерно так:
JSON:
{<br>
"_id": "b3360050039389801524044daf1c963c",<br>
"_rev": "1-2a5da40ce9a191b4decc27411ec9a181",<br>
"hodoc_type": "INCOMMING DELIVERY NOTE",<br>
"user_from": "ANS USER",<br>
"status": "INSTALLED ON SITE",<br>
"category": "ASET",<br>
"location": "MTX SPARE",<br>
"doctype": "hodoc",<br>
"items": [<br>
{<br>
"serial_number": "310310007590",<br>
"status": "STORED IN WAREHOUSE",<br>
"doctype": "data",<br>
"supplier": "INTRACOM",<br>
"po": "0",<br>
"category": "SPARE PART",<br>
"user_out": "IGOR JURUKOV",<br>
"mac": "NULL",<br>
"eqtype": "IDU",<br>
"location": "MTX SPARE",<br>
"location_comment": "NULL",<br>
"date_in": "2011-05-06",<br>
"date_out": "2011-05-06",<br>
"prf": "0",<br>
"part_number": "Z00-404/63.01",<br>
"user_in": "KOTE JANAKIEVSKI",<br>
"bar_code": "0",<br>
"manufacturer": "INTRACOM",<br>
"rma": "NULL",<br>
"product_name": "PSU for IDR-SM"<br>
},<br>
{<br>
"serial_number": "310407016955",<br>
"status": "STORED IN WAREHOUSE",<br>
"doctype": "data",<br>
"supplier": "INTRACOM",<br>
"po": "0",<br>
"category": "SPARE PART",<br>
"user_out": "IGOR JURUKOV",<br>
"mac": "NULL",<br>
"eqtype": "IDU",<br>
"location": "MTX SPARE",<br>
"location_comment": "NULL",<br>
"date_in": "2011-05-06",<br>
"date_out": "2011-05-06",<br>
"prf": "0",<br>
"part_number": "Z00-404/63.02",<br>
"user_in": "KOTE JANAKIEVSKI",<br>
"bar_code": "0",<br>
"manufacturer": "INTRACOM",<br>
"rma": "NULL",<br>
"product_name": "PSU for IDR-SM"<br>
}<br>
]<br>
}
КОД:
var docids = new Array();<br>
var items = new Array();<br>
$('div#divitemsout').find('img.item-out-remove').each(function () {<br>
var id = $(this).attr('attrid');<br>
if (docids.indexOf(id) == -1) {<br>
docids.push(docid);<br>
}<br>
var item = new Object;<br>
$.getJSON('/whdb/' + id, function(data) {<br>
$.each(data, function(key, val) {<br>
if (key !== "_id" && key !== "_rev") {<br>
item[key] = val;<br>
}<br>
});<br>
// Check No.1<br>
//alert(item.manufacturer);<br>
});<br>
// Check No.2<br>
//alert(item.manufacturer);<br>
items.push(item);<br>
});
Проблема и вопрос заключаются в следующем: когда прокомментирована строка ниже Проверки № 2, часть «items» результирующего документа json - []. Когда предупреждение (item.manufacturer) ниже «Проверка № 2» не закомментировано, я получаю оповещения с содержимым «undefined», но часть «items» полученного документа json установлена правильно, как показано в примере. Любое предложение?