【发布时间】:2015-02-03 02:46:03
【问题描述】:
我们是 Ember 的新手,我们想要的 (ember-cli) 应用首先通过打开一个项目(我们可以将其视为 JSON 对象)工作,然后使用各种功能对该项目的各个部分进行操作。我们将这种“首先选择您的项目”的方法巧妙地封装在 Django REST api 结构中,例如
-
/projects/列出所有项目 -
/projects/1/提供有关项目 1 的信息 -
/projects/1/sectionA/列出项目 1 的 sectionA 中的所有元素 -
/projects/1/sectionA/2/提供有关项目 1 中 sectionA 的元素 2 的信息 -
/projects/1/sectionA/2/sectionB/...等等。
我们使用 ember-data 和 this.store('project').find(...) 等在 Ember 中的前两点取得了相对较好的进展。但是,我们在尝试进一步添加到我们的 url 时遇到了困难(例如点 3.、4. 和 5 .)。我相信我们的问题来自于路由和处理多个模型(例如项目和部分 A)。
问题:在 Ember.js 中构造路由以匹配非平凡的 REST API 并类似地使用 ember-data 的最佳方法是什么?
评论:
- “Ember 方式”,以及开箱即用的东西是首选。自定义适配器和
.getJSON可能会起作用,但我们不确定是否会失去 Ember 提供的功能。 - 我们希望项目的选择影响主应用模板。例如。如果项目没有“sectionA”,则主应用程序中不会显示“sectionA”的链接。而且,如果项目确实有“sectionA”,我们需要链接到例如“/project/1/sectionA”,即依赖于打开的项目。
- 这似乎类似于处理用户(即首先我必须“选择一个用户”然后继续),其中问题是在 URL 之外解决的(并且类似于我们过去所做的使用会话)。但是,我们特别希望项目 ID 位于 URL 内,以保持无状态。
额外问题(如果相关):
- 我们将如何构建模型?我们是否需要使用
hasMany/belongsTo,如果需要,这是否等同于首先加载整个项目 JSON? - ember-data 能否处理如此复杂的请求? IE。 “给我项目 1 的 A 部分的项目 2”?它可以“一次性”完成,还是必须有嵌套查询(即“首先给我项目 1”,然后从这个“给我 sectionA”,然后从这个“给我第 1 项”)?李>
最后,如果这在某处有很好的记录,我们深表歉意。我们花了将近一周的时间试图弄清楚这一点,并尽最大努力寻找资源——我们可能只是不知道我们在寻找什么。
【问题讨论】:
-
我认为这本书值得一读:discuss.emberjs.com/t/… - Tom Dale 和 Stefan Penner 参与了该主题
标签: django ember.js ember-data ember-cli ember-router