我想在用户到达包含对象时将用户重定向到集合的firstObject的路由。
一个容器hasMany
项目,目前位于ContainerRoute.afterModel
我正在做的事情:
this.transitionTo('container.item.index', model, model.get('items').get('firstObject'));
当项目不是异步时哪个很好。
问题是firstObject不是一个承诺所以route/transition doesn't pause。
这是model
钩子:
return this.get('store').find('container', params.containerId);
什么是最干净的方法?我看到的选项是:
答案 0 :(得分:0)
transitionTo可以获取对象(实际或承诺)或ID。
我选择只在ContainerRoute
:
this.transitionTo('container.item.index', model, model.get('firstItemId'));
您可以通过访问以下内容获取ID而不会使对象膨胀:
this.get('data.submissions.firstObject.id');
借来的
答案 1 :(得分:0)
hasMany属性是一个类似于对象的promise,因此您可以使用then
方法来了解何时无法解析:
model.get('items').then(function(items) {
this.transitionTo('container.item.index', model, items.get('firstObject'));
});