如何将embedded_lists与ng_admin一起使用(t.map不是函数)

时间:2016-03-08 12:04:35

标签: angularjs restangular ng-admin

我试图让我的REST api暴露我的mongodb数据库以连接到ng-admin。我的成功有限,一旦我将它们从对象转换为字符串,我就能在界面中看到_id。

特别是我在使用embedded_list字段类型显示子标签时遇到问题。我正在关注文档,我只是得到了错误

TypeError:t.map不是函数

在Function.i.value(http://172.28.128.3/bower_components/ng-admin/build/ng-admin.min.js:1:5980) [截断...]

at ae(http://172.28.128.3/bower_components/ng-admin/build/ng-admin.min.js:23:3751

<ma-embedded-list-column field="::field" value="::value" datastore="::datastore" class="ng-scope ng-isolate-scope">

我的ng_admin配置看起来像

var myApp = angular.module('myApp', ['ng-admin']);
myApp.config(['NgAdminConfigurationProvider', function (nga) {
    // create an admin application
    var admin = nga.application('Keyword admin')
      .baseApiUrl('http://172.28.128.3/dictionary/'); // main API endpoint

    var keyword = nga.entity('keyword');
    // set the fields of the user entity list view
    keyword.listView().fields([
        nga.field('_id'),
        nga.field('labels', 'embedded_list') // Define a 1-N relationship with the (embedded) comment entity
        .targetFields([ // which comment fields to display in the datagrid / form
            //nga.field('sport'),
            nga.field('project'),
            nga.field('label')
        ])
    ]);

    //keyword.identifier(nga.field('_id.$id'));
    keyword.identifier(nga.field('_id'));

    admin.addEntity(keyword)
    nga.configure(admin);
}]);

和我的api的输出看起来像(url / dictionary / keyword / 56dd780e1163cf0d008b4568)

{
  "_id": {
    "$id": "56dd780e1163cf0d008b4568"
  },
  "labels": [
    {
      "label": "the pyramid front left",
      "project": "core"
    }
  ],
  "_links": {
    "self": {
      "href": "http://172.28.128.3/dictionary/keyword/56dd780e1163cf0d008b4568"
     }
  } 
}

1 个答案:

答案 0 :(得分:0)

这里的问题是$ labels不是一个数组,我在mongodb聚合函数中完成$ unwind并且在返回数据之前没有撤消它。