Ember Query Params取消设置查询参数

时间:2014-07-31 22:47:02

标签: ember.js

我正在使用新的Ember查询参数,并且遇到了“取消设置”查询参数的问题。

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

this.transitionToRoute({queryParams: {question: 14}} );

不幸的是,这导致:

  ?

游戏= 13&安培;问题= 14

我也尝试过:

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

导致:

  ?

游戏= NULL&安培;问题= 14

因为不知怎的,一切都是字符串转换的。

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

3 个答案:

答案 0 :(得分:2)

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

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

    ...
);

...后来

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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} );