如何在Angular中获取Mongoid的id?

时间:2014-12-01 17:27:58

标签: ruby-on-rails angularjs mongodb ruby-on-rails-4 mongoid

我使用Mongoid gem的Rails 4和MongoDB。 我有像这样的Angular模板:

<ul><li><a href="" ng-click="navNewEmail()">Add a new post</a></li></ul>

<section>
  <h1>Availabe templates: (click to load content)</h1>
  <div ng-repeat="email in data.emails">
      <h3><a href="" ng-click="viewEmail(email._id)">{{ email.subject }}</a> - author: {{ email.user_name }}</h3>
{{ email._id }}
  </div>
</section>

如何获得id EmailEmail对象? 我在MongoDB中有简单的email._id对象。 我试过了{{ email._id }},但Angular没有显示任何内容。

除了$$hashKey "005" _id Object { $oid="5478774a6a61734d8a000000"} body "Here is the sample conte...le ble ble. Nice email." subject "This is first template" user_name null 部分之外,一切都有效。

从JavaScript控制台登录:

_id

所以 {{ email._id.$oid }} 是对象。如何将其转换为字符串并在角度模板中显示?

我这样做:

{{1}}

我不知道它是否正确但有效。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用&#39; active_model_serializers&#39;序列化rails侧的json对象。宝石。

gem "active_model_serializers", github: "rails-api/active_model_serializers"

并在序列化程序目录中创建自己的序列化程序

class EmailSerializer < ActiveModel::Serializer
  attributes :_id, :body, :subject, :user_name
end

然后,尝试使用{{email._id}}

所以,我认为active_model_serializers在执行序列化时会自动调用object._id.to_s方法。