![](/img/trans.png)
[英]How can I fix variables of an array of objects being undefined when being imported from a json file?
[英]How to fix FlowRouter.getParam from being 'undefined'
我正在向网站添加一个新页面,我正在复制已经存在的代码,目前正在该网站上工作。 为什么FlowRouter.getParam在其他地方工作时未定义?
客户机/ JobInvoice.js
import { Invoices } from '../../../imports/api/Invoice/Invoice';
Template.InvoicePage.onCreated(function(){
const user = FlowRouter.getParam('_id');
console.log(user);
this.subscribe('invoices', user);
});
LIB / router.js
Accounts.onLogout(function(){
FlowRouter.go('home');
});
FlowRouter.notFound = {
action: function() {
FlowRouter.go('/404');
}
};
const loggedIn = FlowRouter.group({
prefix: '/secure'
});
loggedIn.route( '/invoice', {
name: 'invoice',
action() {
BlazeLayout.render('FullWithHeader', {main:
'InvoicePage'});
}
});
我错过了什么?
FlowRouter允许您定义具有动态属性( path-to-regexp )的路由,这些属性通常表示文档ID或其他动态属性。
例如
FlowRouter.route('/invoice/:docId', { ... })
将定义一个匹配/invoice/9a23bf3uiui3big
等模式的路由,您通常使用它来为单个文档渲染模板。
现在,如果您想在相应的模板中访问文档ID作为param docId
,您将使用FlowRouter.getParam('docId')
,它将返回上述路由9a23bf3uiui3big
。
由于您的路由定义缺少动态属性,因此FlowRouter.getParam
不会接收任何参数。
可能的解决办法是
loggedIn.route( '/invoice/:_id', {
name: 'invoice',
action() {
BlazeLayout.render('FullWithHeader', {main:
'InvoicePage'});
}
});
以与其他模板相同的方式访问它。
阅读
https://github.com/kadirahq/flow-router#flowroutergetparamparamname
这是我最终做的,它的工作原理。
loggedIn.route( '/invoice/:id', {
name: 'invoice',
action() {
BlazeLayout.render('FullWithHeader', {main: 'InvoicePage'});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.