我使用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
Email
个Email
对象?
我在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}}
我不知道它是否正确但有效。
答案 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方法。