【问题标题】:Ember 2 - Loading Nested Route in parent routeEmber 2 - 在父路由中加载嵌套路由
【发布时间】:2017-01-18 14:30:53
【问题描述】:

我有两条路线:

  • /users/:user_id(又名user
  • /users/:user_id/roles(又名user roles

我现在想在user 路由中显示user roles。 我仍然想要一个单独的user roles 路由。

user rolesuser 路由中加载时,页面应将user roles 部分/模板显示为loading(因为user_roles 对服务器的请求应该继续分开,我不想从user 路由中加载user_roles (ajax),因为它会减慢路由加载)。

我如何做到这一点?

  • 我想我可以创建一个名为...user-roles-component 的异步组件,并将user 输入其中,如下所示:{{user-roles-component user=user}}。然后我可以在我的两条路线上使用这个组件。除了user roles 路由,我不会加载模型?而且我不会违反 DDAU,因为我将直接在我的组件中处理 user_roles 数据。
  • 或者我只是创建一个名为user-roles-service 的服务,它处理给定useruser_roles 的异步加载,并将它传递给两个路由并使用将在两个路由中的自定义组件进行渲染。

【问题讨论】:

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


    【解决方案1】:

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

    另一种方法是在您的组件中创建加载状态(可能也是我会做的方式)。为此,您将从您的 ajax 请求中收到 Promise(有几种方法可以做到这一点:.find().query()ember-ajaxember-network)。单击按钮/链接以加载内容后,您将激活组件的加载状态,一旦承诺解决,您将再次更改组件的状态。

    您的组件在收到数据后可以通过两种方式显示其内容并保留 AUDD(Actions Up,Data Down)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      相关资源
      最近更新 更多