【发布时间】:2016-12-20 11:43:00
【问题描述】:
我有两个面板显示,其中我在左侧显示项目列表,然后在右侧显示有关所选项目的详细信息(使用嵌套路由)。
我的路线是这样的:
Router.map(function() {
this.route('authenticated', {path: '/'}, function() {
this.route('bakery', function() {
this.route('cakes', function() {
this.route('detail', { path: '/:id' });
});
});
});
});
我的网址看起来像 http://localhost:3333/bakery/cakes/e34b3ce3
当一个项目被选中时,它被设置为“活动”(模型上的临时属性 - 默认为 false)并通过 bakery/cakes 路线上的操作突出显示。然后详细信息显示在右侧。
如果我刷新页面,该项目将不再突出显示 - 但仍会显示详细信息。
理想情况下,我想在 bakery/cakes 路由中使用 afterModel() 钩子将该项目再次设置为活动状态,但我无法获得能够执行此操作的 Id。
我尝试了以下方法:
我使用的是 ember 2.5.0。谢谢。
【问题讨论】:
-
详细路线,可以试试
beforeModel(transition){ //you can access using transition.params.details.id with proper check } -
有什么方法可以让我从 cakes 路线访问它吗?
-
我不确定,请在蛋糕路线模型挂钩中尝试一下。
-
不,这在蛋糕中不起作用,和之前的模型一样,细节路线还没有加载,但是已经被之后的模型加载了。尝试从 transition.params 中获取正确的对象会导致问题,因为我看到了以下对象: - 应用程序 - 已验证 - authenicated.bakery - authenticated.bakery.cakes - authenticated.bakery.cakes.detail
-
authenticated.bakery.cakes.detail 对象确实将 id 作为属性,只是将其从 transition.params 对象中取出会导致我出现问题