Ember查询参数为空

Bog*_*rac 2 ember.js

我正在尝试从URL获取一个参数,但它似乎根本没有被分配.我按照本指南http://emberjs.com/guides/routing/query-params/ 下面是index.js控制器.

export default Ember.Controller.extend({

  queryParams: ['authToken'],
  authToken: null,

  init: function() {
    var authToken = this.authToken;
    console.log(authToken);
  }
});
Run Code Online (Sandbox Code Playgroud)

访问根URL /或/#时,authToken为null,按预期工作.但是,在尝试/#?authToken = 123时,它仍然为空.有任何想法吗 ?

Dan*_*mak 7

好吧,我无法获得authToken内部init钩子的价值- 我认为它被称为太早了,但你可以将它包装在Ember.run.next方法中或者将它的值setupController挂钩IndexRoute.这按预期工作:

App.IndexRoute = Ember.Route.extend({
  setupController: function (controller, model) {
    console.log(controller.get('authToken'));
  }
});

App.IndexController = Ember.Controller.extend ({
  queryParams: ['authToken'],
  authToken: null,
  init: function() {
    this._super();
    Ember.run.next(this, function() {
      console.log(this.get('authToken'));
    });

  }
});
Run Code Online (Sandbox Code Playgroud)

例如,URL site.com#/?authToken=lol生成以下控制台输出:

app:49 lol
app:59 lol
Run Code Online (Sandbox Code Playgroud)

工作演示.