【问题标题】:Get an ember component to maintain state across route transitions获取一个 ember 组件来维护跨路由转换的状态
【发布时间】:2015-03-18 14:01:16
【问题描述】:

在 ember 控制器中,它们保持状态跨越转换,因为它们是单例,是否可以对组件做同样的事情?

我需要这个,因为在我的 ember 应用程序中,用户在路由之间导航,但相应路由中的组件被初始化为其初始状态,我不希望在这种情况下发生这种情况。

【问题讨论】:

标签: ember.js ember-components


【解决方案1】:

对于这个问题,我们需要更多上下文,但可能的答案是您的组件需要位于父模板中,当您导航到不同的路线时,该模板不会转换。所以在 application.hbs 你会有:

{{your-persistent-component}}
{{outlet}} <!-- Outlet your sub-routes are rendered into -->

根据您的需要,您可能需要将其嵌套到资源中,例如,如果您不希望组件显示在登录页面上,但确实希望它显示在登录用户的索引页面上。

【讨论】:

  • 将这个嵌套到资源中是什么意思?
  • 查看有关资源的文档——我的观点是,在 ember 中,我们经常使用像 this.resource('user', { path: '/' }, function() { // more routes and resources 这样的资源来保存登录用户的模型/状态。但是您并没有真正详细说明,所以我无法说出您的用例是什么。
  • 嗯,我在一个路由中有一个组件,并且只有那个路由,当我导航到它的父路由时必须保持它的状态。
【解决方案2】:

我发现对于我的用例,我需要将组件中的特定字段绑定到控制器或模型中。似乎组件在每次转换时都设置为初始状态。

例如:

 {{foo-comp  fooCompProp1=fooControllerProp1   fooCompProp2=fooModelProp1 }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2022-10-23
    • 2017-01-24
    • 2021-02-24
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多