Ember 查询参数为空
Ember query param is null
我正在尝试从 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);
}
});
访问根URL/或/#时,authToken为null,正常。但是,在尝试 /#?authToken=123 时,它仍然为空。有什么想法吗?
好吧,我无法在 init
钩子中获取 authToken
的值 - 我认为它调用得太早了,但您可以将其包装在 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'));
});
}
});
例如,URL site.com#/?authToken=lol
产生以下控制台输出:
app:49 lol
app:59 lol
我正在尝试从 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);
}
});
访问根URL/或/#时,authToken为null,正常。但是,在尝试 /#?authToken=123 时,它仍然为空。有什么想法吗?
好吧,我无法在 init
钩子中获取 authToken
的值 - 我认为它调用得太早了,但您可以将其包装在 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'));
});
}
});
例如,URL site.com#/?authToken=lol
产生以下控制台输出:
app:49 lol
app:59 lol