gpt4 book ai didi

javascript - Ember 组件不会在路由重新加载或 transitionTo 时重新加载

转载 作者:行者123 更新时间:2023-11-30 20:17:28 24 4
gpt4 key购买 nike

我有一个调用 ember 组件来显示所有数据的 ember 路由。

我有一个案例,其中路由的键发生变化,我使用 route.transitionTo 重新加载。数据加载正常。但问题是组件在 initdidInsertElement 方法中执行操作,而在 route.transitionTo 上未触发。

如何确保在 transitionTo 上再次调用该组件?

我不能使用 route.refresh,因为它不会执行模型 Hook 。

任何帮助将不胜感激,谢谢!

最佳答案

好吧,有一种更难更好的方法,也有一种懒惰的快速方法:

  1. 更好的方法:我建议您在路由中创建一个属性并将此参数传递给组件,然后在组件中为该参数创建一个计算属性,您发送的内容,您可以在其中运行代码你调用了“init”和“didInsertElement”函数。

例如:路由器.hbs

{{component-name parameter=parameter}}

组件.js

lineWidth: Ember.computed('parameter', function() {
// I will run here if I get the parameter (and the parameter changed in route)
}),
  1. 不是最好的方法:您可以像这样重新加载整个组件:

路由器.hbs

{{#if reload}}
{{component-name}}
{{/if}}

路由器.js

this.set('reload', false);
Ember.run.next(() => {
this.set('reload', true);
});

关于javascript - Ember 组件不会在路由重新加载或 transitionTo 时重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com