Mongodb 角度1.2.0:错误:“;不允许在角度表达式中引用专用字段;尝试访问Mongo_id字段时

Mongodb 角度1.2.0:错误:“;不允许在角度表达式中引用专用字段;尝试访问Mongo_id字段时,mongodb,angularjs,Mongodb,Angularjs,尝试从角度表达式读取mongo_id字段时: <tr ng-repeat="person in people"> <td>{{person._id}}</td> <td>{{person.name}}</td> <td>{{person.location}}</td> <td>{{person.active}}</td> </tr> plunker链接: 编辑

尝试从角度表达式读取mongo_id字段时:

<tr ng-repeat="person in people">
  <td>{{person._id}}</td>
  <td>{{person.name}}</td>
  <td>{{person.location}}</td>
  <td>{{person.active}}</td>
</tr>
plunker链接:

编辑:

此更改已在Angular 1.2.1中恢复:

当前解决方案 这是由于角度1.2.0中的断裂变化(此处讨论:)

有一个简单的,如果不是恼人的,修复这个

在app.run函数中,可以添加$rootScope级别的访问器对象,该对象包含一个返回正确Mongo ID的函数

app.run(function($rootScope) {
  $rootScope.accessors = {
    getId: function(row) {
      return row._id
    }
  }
});
然后,在标记中,使用该方法,而不是直接访问数据点:

<tr ng-repeat="person in people">
  <td>{{accessors.getId(person)}}</td>
  <td>{{person.name}}</td>
  <td>{{person.location}}</td>
  <td>{{person.active}}</td>
</tr>

{{accessors.getId(person)}
{{person.name}
{{person.location}
{{person.active}}
一个带有修复程序的plunker:

讨论:
这将允许您继续进行开发,但要知道,与直接访问变量相比,这会带来更多的开销。对于小型项目,这不应影响任何可感知的性能,尽管您可能会在大型应用程序上看到一些可测量的量。然而,到目前为止,这种担心纯粹是学术性的。

此功能已恢复。
<tr ng-repeat="person in people">
  <td>{{accessors.getId(person)}}</td>
  <td>{{person.name}}</td>
  <td>{{person.location}}</td>
  <td>{{person.active}}</td>
</tr>