我的JavaScript出了什么问题?我已经按照Q& A在这里将数据附加到jQuery移动列表视图,但这似乎不起作用。
<!-- start view_skus -->
<div data-role="page" id="view_skus">
<div data-role="header" data-position="fixed">
<a data-role="button" data-rel="back" data-icon="arrow-l">Back</a>
<h1>View SKUs</h1>
<ul data-role="listview" id="sku_list" data-inset="true"></ul>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://matkiros.cloudant.com/sm/_design/view_skus/_view/view_skus");
xhr.onload = function() {
var response = jQuery.parseJSON(xhr.responseText);
for (var i = 0; i < response.total_rows; i++) {
$('#sku_list').append($("<li></li>").html('<h3>' +
rows[i].value.description + '</h3><br/>' +
'ID: ' + rows[i].value.sku_id + '<br/>' +
'Quantity: ' + rows[i].value.quantity))
.listview('refresh');
}
};
xhr.send();
</script>
</div>
</div> <!-- end view_skus -->
基本上,SKU只是杂货店的产品,我想在列表视图中显示其详细信息。我正在从URL http://matkiros.cloudant.com/sm/_design/view_skus/_view/view_skus
中检索CouchDB数据库中的SKU列表,该列表返回以下JSON字符串:
{"total_rows":3,"offset":0,"rows":[
{"id":"96ba7296fb95fb14e54a2ae9777dee06","key":"00001","value":{"_id":"96ba7296fb95fb14e54a2ae9777dee06","_rev":"1-029baa64356c5187610d9867c590921b","type":"sku","sku_id":"00001","description":"Dried mangoes","quantity":100}},
{"id":"7e1ec756e85f0e073ed98f3e8a59ebb8","key":"53911","value":{"_id":"7e1ec756e85f0e073ed98f3e8a59ebb8","_rev":"1-5e02bd021232b3bc3bd56dd00d50b64d","type":"sku","sku_id":"53911","description":"Samsung Galaxy S II","quantity":35}},
{"id":"e5b24f49ac538e5187e382a341ac043c","key":"A91J7","value":{"_id":"e5b24f49ac538e5187e382a341ac043c","_rev":"3-f3bab0f8936023c4133f47b29e78c575","type":"sku","sku_id":"A91J7","description":"Jansport bag J2203-1","quantity":50}}
]}
答案 0 :(得分:0)
请使用jQM Beta 3进行测试
而不是这个
for (var i = 0; i < response.total_rows; i++) {
$('#sku_list').append($("<li></li>").html('<h3>' +
rows[i].value.description + '</h3><br/>' +
'ID: ' + rows[i].value.sku_id + '<br/>' +
'Quantity: ' + rows[i].value.quantity))
.listview('refresh');
}
试试这个
for (var i = 0; i < response.total_rows; i++) {
$('#sku_list').append($("<li></li>").html('<h3>' +
rows[i].value.description + '</h3><br/>' +
'ID: ' + rows[i].value.sku_id + '<br/>' +
'Quantity: ' + rows[i].value.quantity));
}
// Make the refresh after the for loop
$('#sku_list').listview('refresh');
// This might be another way but refreshes the whole page
// $('#view_skus').trigger('create');
答案 1 :(得分:0)
我意识到上面的代码是正确的,除了不是说rows[i].value.some_property
,它应该是response.rows[i].value.some_property
。