Meteor 当进入深度链路时,铁路由器路由的执行会发生什么变化?
我有一个小流星应用程序与铁路由器。以下是我的routes.js,可用于客户端和服务器:Meteor 当进入深度链路时,铁路由器路由的执行会发生什么变化?,meteor,iron-router,Meteor,Iron Router,我有一个小流星应用程序与铁路由器。以下是我的routes.js,可用于客户端和服务器: Router.configure({ layoutTemplate: 'defaultLayout', loadingTemplate: 'loading' }); // Map individual routes Router.map(function() { this.route('comicCreate', { path: '/comic/create' });
Router.configure({
layoutTemplate: 'defaultLayout',
loadingTemplate: 'loading'
});
// Map individual routes
Router.map(function() {
this.route('comicCreate', {
path: '/comic/create'
});
this.route('comicDetails', {
onBeforeAction: function () {
window.scrollTo(0, 0);
},
path: '/comic/:_id',
layoutTemplate: 'youtubeLayout',
data: function() { return Comics.findOne(this.params._id); }
});
this.route('frontPage', {
path: '/',
layoutTemplate: 'frontPageLayout'
});
this.route('notFound', {
path: '*',
where: 'server',
action: function() {
this.response.statusCode = 404;
this.response.end('Not Found!');
}
});
});
我需要将漫画集文档中的一些字段输入到包装Youtube的IFrame API的包中,我正在通过呈现函数执行此操作:
Template.comicDetails.rendered = function() {
var yt = new YTBackground();
if (this.data)
{
yt.startPlayer(document.getElementById('wrap'), {
videoIds: this.data.youtubeIds,
muteButtonClass: 'volume-mute',
volumeDownButtonClass: 'volume-down',
volumeUpButtonClass: 'volume-up'
});
}
};
当我首先转到localhost:3000/然后单击设置为“{{pathFor'comicDetails'\u id}”的链接时,这非常有效。然而,如果我直接转到localhost:3000/comic/somevalidid,它不会,尽管事实上这两条路径最终都指向同一个url
原因似乎是,当我直接转到深层链接时,“this.data”在执行呈现函数期间未定义。模板本身显示得很好(数据正确地替换了我模板中的空格{field}}标记),但是当呈现回调触发时,“this”上下文中没有数据
我有什么地方做错了吗?试着在Meteor.startup中声明路线。。。不确定这是否是问题所在,但值得一试