我有两条路线:
/users/:user_id
(又名user
)/users/:user_id/roles
(又名user roles
)我现在想要在user roles
路线中显示user
。
我仍然想要一个单独的user roles
路线。
在user roles
路由中加载user
时,该页面应将user roles
部分/模板显示为loading
(因为user_roles
向服务器发出请求1}}应该继续分开,我不想在user_roles (ajax)
路由中加载user
,因为它会减慢路由加载速度。)
我如何实现这一目标?
user-roles-component
的异步组件,并将user
提供给它,如下所示:{{user-roles-component user=user}}
。然后我可以在我的两条路线上使用这个组件。除了在user roles
路由的情况下,我不会加载模型?我不会违反DDAU,因为我将直接在我的组件中处理user_roles
数据。user-roles-service
的服务,它处理user_roles
user
的异步加载,并在两个路由中传递它,并使用将在其中的自定义组件进行渲染这两条路线。答案 0 :(得分:0)
我会在您的路线中创建loading state并在您点击一个按钮/链接后加载角色内容,并将收到的内容传递给您的组件。
另一种方法是在组件中创建加载状态(可能就像我一样)。为此,您会收到来自ajax请求的Promise
(有多种方法可以执行此操作:.find()
,.query()
,ember-ajax
,ember-network
)。单击按钮/链接以加载内容后,您将激活组件的加载状态,一旦解决了承诺,您将再次更改组件的状态。
一旦接收到数据,您的组件就可以显示其内容,并保留AUDD(Actions Up,Data Down)。