EmberJS:在单条路线上加载多个模型
在踏上 EmberJS 之旅时,开发人员可能会遇到加载多个不相关模型的挑战在同一条路线上。下面是解决这个问题的方法:
考虑路由
首先,评估路由是否基于 slug 参数“:id”动态加载数据。如果是这样,请避免在模型挂钩中加载多个模型。为什么?因为当用模型链接到这样的路由时,Ember 会忽略模型钩子。
模型钩子的替代品
-
SetupController/afterModel: 在这些钩子中加载其他模型。如果需要等待,请从 afterModel 返回一个 Promise 并在 setupController 中手动管理结果。
-
Ember Data: 在模型挂钩中使用 store.find('resource')。 Ember Data 会自动处理异步交互。
处理非动态路由
如果路由没有根据参数动态加载数据,这里是options:
-
模型挂钩中的多个模型:返回具有多个模型键和值的对象。
-
RSVP 哈希:加载使用 Ember.RSVP.hash({ modelKey: Promise/value, ... }).
-
混合和匹配: 将 RSVP 哈希值与非 Promise 结合起来,将 Promise 或普通值作为哈希值
其他注意事项
- 如果任何模型需要阻塞,除了使用其他方法外,还可以从 afterModel 返回一个 Promise .
- 设置控制器可用于进一步修改或关联模型,例如设置依赖关系。
- 请记住,这些技术是特定于路由的,不适用于嵌套路由。
以上是以下是一些适合问答格式并准确反映文章内容的标题选项:
选项 1(关注问题):
* EmberJS:如何在 Si 上加载多个模型的详细内容。更多信息请关注PHP中文网其他相关文章!