当你在铁路上创建一个通配符:路由器用于meteor路径模板助手,但路由器。路由器和路由器路由器路由器路由器路径似乎也被打破了。
这是我们的路线:
Router.route('/:urlQuery*', function(){
this.render('ourTemplate');
}, {
name : 'ourRoute',
});
要访问生成的网址,我们尝试了以下内容:
Router.go('ourRoute', {urlQuery : 'test'});
Router.go('ourRoute', {urlQuery : ['test']});
Router.go('ourRoute', {urlQuery : null});
Router.go('ourRoute', {urlQuery : false});
Router.routes.ourRoute.path({urlQuery : 'test'});
Router.routes.ourRoute.path({urlQuery : ['test']});
Router.routes.ourRoute.path({urlQuery : null});
Router.routes.ourRoute.path({urlQuery : false});
当然 - 我们也试过了{{pathFor}}模板助手。
每行代码都会抛出相同的错误:
Uncaught Error: You are trying to access a wild card parameter at index 0 but the value of params at that index is undefined
我在iron:路由器指南中找不到任何引用所以我的问题是:如何在iron中生成一个URL:带有通配符作为参数的路由器?
答案 0 :(得分:2)
看起来Iron Iron正在使用path-to-regexp,但在Iron Router中使用时格式有点不同,并不是很清楚。试试这个......
Router.route('/:urlQuery(.*)', function(){
(。)将告诉它采用参数名称,并重复0次或更多次。只是urlQuery 打破了我认为的名称,并使其成为正则表达式的一部分。现在,如果您想将多个对象数组传递给Router.go,您将遇到另一个问题......
Router.go("our.route", {urlquery: ['test', 'another']});
生成一个看起来像这样的网址......
http://localhost:3000/test%2Canother
但这是一个不同的问题,我还没有得到答案。也许在Router.go中发送多个,更好的方法是自己连接它们。看起来铁路由器和路径到正则表达式还没有完全集成?