【问题标题】:Simple Ember.js Relationships简单的 Ember.js 关系
【发布时间】:2013-06-12 20:33:17
【问题描述】:

我是 ember.js 的新手,在设置 Ember 数据对象之间的关系时有些吃力。抱歉,我还没有完成我的 google-due-diligance - 我对它还很陌生,以至于我什至不知道要搜索什么。

我能够使用咖啡脚本和一堆教程来掌握一些基础知识,但现在我在一些简单的关系上苦苦挣扎,我想要的是拥有多个组(群组),其中有多个人( boots),它有多个任务,有一个描述要么已完成,要么已完成。现在都是一对多的关系——我现在并不担心多对多的关系。

不幸的是,我一开始就被绊倒了。我所有的代码都可以复制和粘贴。我相信我必须以某种方式根据选择的群组动态地为靴子创建一个控制器 - 或者我可能需要制作一条路线并让它设置控制器?我敢肯定它比不简单,但我似乎无法在我有限的 ember 词汇表中在线找到很多资源

Plato.Router.map ->
  this.resource('cohorts', ->
    this.resource('cohort', {path: ':cohort_id'}))

Plato.CohortsRoute = Ember.Route.extend(
  model: ->
    Plato.Cohort.find()
)

Plato.CohortsController = Ember.ArrayController.extend()

Plato.BootsController = Ember.ArrayController.extend()

Plato.Cohort = DS.Model.extend(
  name: DS.attr('string'),
  boots: DS.hasMany('Plato.Boot')
)

Plato.Boot = DS.Model.extend(
  name: DS.attr("string")
  cohort: DS.belongsTo('Plato.Cohort')
)

【问题讨论】:

    标签: ember.js coffeescript ember-data


    【解决方案1】:

    到目前为止,您的代码看起来是正确的。但是由于您没有提供更多详细信息,我试图重现您的情况(提供缺失的部分),这里将working results 作为 jsbin。 请尝试将您的代码与jsbin 中的代码进行比较,也许您会发现哪些代码不适合您。

    希望对你有帮助

    【讨论】:

    • 嗯...我不知道我做错了什么,我可以发誓我确实尝试过,但不管它现在是否有效!谢谢!
    • 感谢@intuitivepixel 的直截了当的回答!我发现我有一个稍微不同的用例,它要求关系只存储在一侧(即靴子存储它们所属的群组,但群组不存储任何关于靴子的信息)。我采用了您的解决方案并按照我的用例创建了this modification。我把它贴在这里,以防其他人偶然发现这个答案并需要它=)
    猜你喜欢
    • 1970-01-01
    • 2012-10-24
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多