gpt4 book ai didi

javascript - 在 Ember.js 中关闭粘性查询参数

转载 作者:数据小太阳 更新时间:2023-10-29 04:47:47 27 4
gpt4 key购买 nike

我找到了一个 jsbin 来说明我的问题。 http://emberjs.jsbin.com/ucanam/2708 .

最后一个链接,在链接上没有明确的查询参数设置,它使用 Controller 上当前的粘性查询参数值。有办法关闭这个粘性功能吗?这样做会破坏其他场景吗?

我目前的解决方案是在我想要清除的每条路线上清空查询参数:

export default Ember.Route.extend({
deactivate: function() {
var controller = this.controllerFor(this.get('controllerName'));
var queryParams = controller.get('queryParams');
for (var i = 0; i < queryParams.length; i++)
controller.set(queryParams[i], null);
}
});

这可行,但似乎应该有更简单的方法。

我应该注意,对每条路线执行类似 {{#link-to 'route' (query-params val=null)}}{{/link-to}} 的操作并不是选项,因为我有一些可重用的代码,其中路由是一个变量,所以我不知道我必须取消的查询参数。

编辑:

这是正确的方法,以防文档的答案发生变化:

export default Ember.Route.extend({
resetController: function(controller, isExiting) {
if (isExiting) {
var queryParams = controller.get('queryParams');
for (var i = 0; i < queryParams.length; i++)
controller.set(queryParams[i], null);
}
}
});

编辑 2:

现在通过这个插件很容易做到这一点 https://github.com/kellyselden/ember-query-params-reset .它还会重置为原始值,而不仅仅是清零值。

最佳答案

它在指南中为您提供了两种处理方法的选项:https://guides.emberjs.com/release/routing/query-params/#toc_sticky-query-param-values

看起来选项 #2 与您正在做的非常接近:

use the Route.resetController hook to set query param values back to their defaults before exiting the route or changing the route's model.

关于javascript - 在 Ember.js 中关闭粘性查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487993/

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