我有一个包含大量文档的数据库,我使用字段类型将其定义为表格。我想用JSON数据填充angularjs ui-grid。所以我创建了一个视图:
function(doc) {
if(doc.type === 'userTable'){
emit(doc._id, {userName:doc.userName,fName:doc.fName});
}
}
当我点击网址http://127.0.0.1:5984/rpt_db/_design/Dsgn_userjson/_view/Vw_userjson/时,它会给我:
{"total_rows":1,"offset":0,"rows":[
{"id":"f43a147cd5c961fcfe4e1da1b800013a",
"key":"f43a147cd5c961fcfe4e1da1b800013a",
"value":{"userName":"rp670249","fName":"Ranjeeth"}}
]}
现在在我的客户端代码中,我需要做一个循环并将数据作为JSON。
result.rows.forEach(function(item) {
var temp = { "id": item.value.userName, usrName: item.value.fName};
console.log(temp);
//Update data of grid using temp variable.
});
是否有一种简单的方法可以直接使用作为couchdb JSON输出的一部分,可以在角度ui-grid中使用。
答案 0 :(得分:1)
您可以使用columnDefs中的json dot表示法来引用列值。因为您的实际值在“值”内。您可以像这样创建列定义
$scope.myData = {"total_rows":1,"offset":0,"rows":[
{"id":"f43a147cd5c961fcfe4e1da1b800013a",
"key":"f43a147cd5c961fcfe4e1da1b800013a",
"value":{"userName":"rp670249","fName":"Ranjeeth"}}
]}
$scope.gridOptions = {
data : $scope.myData.rows,
columnDefs : [
{name:"id",field:"value.userName"},
{name:"usrName",field:"value.fName"}
]
};
这是一个有效的plnkr。