在没有_id和_ref的情况下从coucgdb

时间:2015-06-10 02:14:36

标签: json angularjs couchdb angular-ui-grid

我有一个包含大量文档的数据库,我使用字段类型将其定义为表格。我想用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中使用。

1 个答案:

答案 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。

http://plnkr.co/edit/juLZeT6I0LOlek4QnMSP?p=preview