【问题标题】:Using Subdocument as ember model使用 Subdocument 作为 ember 模型
【发布时间】:2016-03-18 00:07:29
【问题描述】:

我正在尝试在 mongoDB 文档及其子文档之间建立一对多的关系。到目前为止,我 git 我的模型:

用户/model.js:

export default DS.Model.extend({
  name: DS.attr('string'),
  age: DS.attr('number'),
  calendarEntries: DS.hasMany('calendarEntries', {embedded: true}) 
                                          //also tried embedded: 'always'
});

日历条目/model.js

export default DS.Model.Extend({
  title: DS.attr('string'),
  date: DR.attr('string'),
  user: belongsTo('user')  //Also tried without this
});

我从 api 得到的是:

"user": {
  "_id": "56e3510e8a87920cc961faf5",
  "name": "John Doe",
  "age": 25,
  "calendarEntries": [
    {
      "_id": "56e3511f8a87920cc961faf6",
      "title": "Meet friends",
      "date": "2016-03-13T00:54:13.442Z"
    }
  ]
}

我还使用序列化程序将 primaryKey 设置为“_id”。该 API 具有端点 /users、/users/:userid、/users/:userid/calendarEntries 和 /users/:userid/calendarEntries/:entryid。在其他帖子中,我读到这是有效的,但我没有弄错。错误消息并没有真正告诉我任何事情: “将类传递给存储方法已被删除。请传递一个破折号的字符串而不是未定义的”。由于我阅读的其他帖子大约有两年的历史,我不知道 ember-data 发生了什么变化。

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    我怀疑 ember 数据无法推断 calendarEntries 属性和 calendar-entry 模型之间的关系,因为复数是不规则的。您可以使用变形器将'entry'的复数形式定义为'entries'

    http://emberjs.com/api/data/classes/Ember.Inflector.html

    【讨论】:

      猜你喜欢
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多