我已经完成了
ember g route auth
ember g route auth/pending
然后给了我:
app/
routes/
auth/
pending.js
auth.js
我的路由器有
this.route('auth', function() {
this.route('pending', { path: '/pending/:steamid/:token'});
});
当我访问
时,一切都很好 http://localhost:4200/auth/pending/1/2
页面加载,但如何在:steamid
之外访问:token
和model
。
我想使用它,以便我可以在session
服务
像:
import Ember from 'ember';
export default Ember.Route.extend({
session: Ember.inject.service(),
steamID: this.get(// Params Some How),
token: this.get(// Params some How)
thing(params) {
this.get('session').set('tokenID', token),
this.get('session').set('steamID', steamID)
}
});
^^伪代码表达我想要完成的事情。
答案 0 :(得分:1)
虽然它不在网站文档中,但查看传递给某些Transition
个钩子的Route
对象的source code(例如afterModel
和{{ 1}})它有一个beforeModel
属性,其中包含动态段params。
所以你可以,例如:
params
答案 1 :(得分:0)
您可以通过许多不同的钩子在服务中设置它们:
import Ember from 'ember';
export default Ember.Route.extend({
session: Ember.inject.service(),
/* Access from beforeModel */
beforeModel(transition) {
this.get('session').setProperties({
tokenID: transition.params.token,
steamID: transition.params.steamid
});
},
/* Access from model */
model(params, transition) {
this.get('session').setProperties({
tokenID: params.token,
steamID: params.steamid
});
}
});
如果你问我型号挂钩是最好的选择。特别是如果您希望查询参数在每次更改时刷新模型(请参阅guide)。