Ember.js 余烬查询参数取消设置查询参数

Ember.js 余烬查询参数取消设置查询参数,ember.js,Ember.js,我正在使用新的余烬查询参数,并且存在“取消设置”查询参数的问题 我有一个场景,我需要从如下内容导航:?游戏=13到?问题=14。 这意味着我的路由器上有两个查询参数:游戏,问题。不幸的是,这种转变(来自于?游戏=13): 不幸的是,这导致: 游戏=13,问题=14 我也尝试过: this.transitionToRoute({queryParams: {question: 14, game: null}} ); 这导致: ?游戏=null,问题=14 因为不知何故,一切都改变了 如何转换到?q

我正在使用新的余烬查询参数,并且存在“取消设置”查询参数的问题

我有一个场景,我需要从如下内容导航:?游戏=13到?问题=14。 这意味着我的路由器上有两个查询参数:游戏,问题。不幸的是,这种转变(来自于?游戏=13):

不幸的是,这导致:

游戏=13,问题=14

我也尝试过:

this.transitionToRoute({queryParams: {question: 14, game: null}} );
这导致:

?游戏=null,问题=14

因为不知何故,一切都改变了


如何转换到?question=14并删除游戏查询参数?

尝试在控制器中为查询参数设置默认值。之后你可以做:

this.transitionToRoute({queryParams: {question: 14, game: <the default value that you set in the controller>}} );
this.transitionRoute({queryParams:{问题:14,游戏:}});

将存储查询参数的属性初始化为某个值。将它们设置回此初始值,以便稍后从URL中删除它们:

App.SomeController = Ember.Controller.extend({
    queryParams: ['myParam'],
    myParam: "initial",

    ...
);
后来

controller.set('myParam', "initial");

这不起作用,因为默认值为null。但当我提供null作为值时,它被转换为“null”(作为字符串),然后我得到:?game=null&question=14Try“”而不是null。为我工作!
controller.set('myParam', "initial");
var params = {};
if(this.get('controller.question') params.question = this.get('controller.question');
if(this.get('controller.game') params.game = this.get('controller.game');

this.transitionToRoute({queryParams: params} );