Ember 2 - 在父路线

时间:2017-01-18 14:30:53

标签: ember.js ember-data ember-router

我有两条路线:

  • /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的异步加载,并在两个路由中传递它,并使用将在其中的自定义组件进行渲染这两条路线。

1 个答案:

答案 0 :(得分:0)

我会在您的路线中创建loading state并在您点击一个按钮/链接后加载角色内容,并将收到的内容传递给您的组件。

另一种方法是在组件中创建加载状态(可能就像我一样)。为此,您会收到来自ajax请求的Promise(有多种方法可以执行此操作:.find().query()ember-ajaxember-network)。单击按钮/链接以加载内容后,您将激活组件的加载状态,一旦解决了承诺,您将再次更改组件的状态。

一旦接收到数据,您的组件就可以显示其内容,并保留AUDD(Actions Up,Data Down)。