Kel*_*den 7 javascript query-parameters ember.js
我找到了一个说明我问题的jsbin.http://emberjs.jsbin.com/ucanam/2708.
最后一个链接,在链接到没有设置显式查询参数的情况下,它使用控制器上的当前粘滞查询参数值.有没有办法关闭这个粘性功能?会这样做会打破其他情况吗?
我目前的解决方案是在我想要清除的每条路线上清空查询参数:
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);
}
});
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎应该有一个更简单的方法.
我应该注意,{{#link-to 'route' (query-params val=null)}}{{/link-to}}为每条路径做一些事情不是一个选择,因为我有一些可重用的代码,其中路由是一个变量,所以我不知道查询参数我必须为null.
如果答案中的文档发生变化,这是正确的方法:
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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
现在通过这个插件https://github.com/kellyselden/ember-query-params-reset很容易做到这一点.它还会重置为原始值,而不仅仅是将值清零.
它为您提供了如何在指南中处理此问题的两个选项:https://guides.emberjs.com/release/routing/query-params/#toc_sticky-query-param-values
看起来选项 #2 与您正在做的事情非常接近:
在退出路由或更改路由模型之前,使用 Route.resetController 挂钩将查询参数值设置回默认值。
| 归档时间: |
|
| 查看次数: |
5408 次 |
| 最近记录: |