javascript - EmberJS 异步的过渡到firstObject hasMany

标签 javascript asynchronous ember.js ember-data

当用户到达包含对象时,我想将用户重定向到集合的第一个对象的路由。

一个容器hasMany项,当前位于我正在做的ContainerRoute.afterModel中:

this.transitionTo('container.item.index', model, model.get('items').get('firstObject'));

当项目不异步时,这很好。

问题是第一个对象不是一个 promise ,所以 route/transition doesn't pause

这是模型 Hook :

return this.get('store').find('container', params.containerId);

最干净的方法是什么?我看到的选项是:

  • 更改模型 Hook 以填充
  • 构建 Promise 并将其作为参数传递给transitionTo
  • transition到对象的ID而不是对象(现在为此编写解决方案)

最佳答案

transitionTo 可以采用一个对象(实际的或 promise 的)或 ID。

我选择仅在 ContainerRoute 中发送 ID:

this.transitionTo('container.item.index', model, model.get('firstItemId'));

您可以通过访问以下内容来获取 ID,而无需膨胀对象:

this.get('data.submissions.firstObject.id');

这是从 github issue about avoiding loadMany 借来的

关于javascript - EmberJS 异步的过渡到firstObject hasMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006605/

相关文章:

c# - 这个 MVC4 API 调用应该是异步的吗?

ember.js - 当应用程序位于我的服务器的子目录中时,如何设置 ember.js 以使用历史记录

javascript - 传单标记集群 : Exempt marker from clustering

javascript - 如何使用 Angular 动画使其始终朝一个方向移动?

javascript - 在数组中显示下一张图片 onClick

c++ - 从Lambda启动异步任务会阻止当前线程C++

database - 避免客户端/服务器数据同步间隙

Ember.js:使用嵌套路由时,后退按钮不会刷新索引 View

javascript - Emberjs - 我应该将 Handlebars.registerHelper 插入哪个文件

javascript - 销毁 WebWorker