iron-router documentation describes changing routes programmatically。该示例显示了如何传递参数,但我在路由控制器扩展中访问此参数时遇到问题。
在下面的代码中,我如何访问'baz'
函数中的waitOn
值?
routes.js
Router.configure({
loadingTemplate: 'Loading',
notFoundTemplate: 'NotFound',
templateNameConverter: 'upperCamelCase',
routeControllerNameConverter: 'upperCamelCase',
onBeforeAction: 'loading'
});
Router.map(function () {
this.route('foo', {
path: '/',
action: function() {
Router.go('bar',{_id: 'baz'});
}
});
this.route('bar');
});
bar.js
BarController = RouteController.extend({
waitOn: function() {
// this.params._id does not work
// this._id does not work
// do work and return something;
},
data: function() {
// fetch and return something;
},
action: function() {
this.render();
}
});
澄清:我希望在动态路径段中不包含参数的情况下实现此目的。我只想像任何其他JavaScript函数一样传递参数。
答案 0 :(得分:1)
您需要在路径变量
中包含参数如果您使用了<{p>,则为foo
路径
path: '/:_id'
而不是
path : '/'
添加:_id
是一个占位符,可以baz
与this.params
对象一起使用。
然后this.params._id
可以使用该值,您的网址也会更改为/baz
。