Meteor:设置起始页(位置)
如何让Meteor应用程序在特定页面上启动?如果您无法控制,那么浏览器会记住您上次关闭应用时在应用中的位置,并尝试加载该旧位置。这很好,如果这是你想要的,但如果不是,你会怎么做 在我的应用程序中使用iron router,这一功能过去可以正常工作:Meteor:设置起始页(位置),meteor,iron-router,Meteor,Iron Router,如何让Meteor应用程序在特定页面上启动?如果您无法控制,那么浏览器会记住您上次关闭应用时在应用中的位置,并尝试加载该旧位置。这很好,如果这是你想要的,但如果不是,你会怎么做 在我的应用程序中使用iron router,这一功能过去可以正常工作: Meteor.startup(function () { Router.go('/'); }); 现在这在Router.js中抛出一个错误,抱怨self.\u位置未定义。这就好像对Router.go()的调用现在进行得太快了。有没有办法知道
Meteor.startup(function () {
Router.go('/');
});
现在这在Router.js中抛出一个错误,抱怨self.\u位置未定义。这就好像对Router.go()的调用现在进行得太快了。有没有办法知道路由器何时准备好进行go()调用?还是一种在这里引入延迟的方法
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
为了解决这个问题,我把所有的东西都精简到了最基本的部分。以下是我的全部代码,共2个文件:
newPL.js:
Router.configure({
layoutTemplate: 'layout'
});
Router.map(function () {
this.route('home', {
path: '/',
});
this.route('main', {
path: '/main',
});
});
if (Meteor.isClient) {
Meteor.startup(function () {
Router.go('home');
});
}
和newPL.html:
<head>
<title>newPL</title>
</head>
<template name='layout'>
<div>
{{> yield}}
</div>
</template>
<template name='home'>
<div>
Welcome to Planet Lingo!
<a href='/main'>GO</a>
</div>
</template>
<template name='main'>
<div>
<h1>Main</h1>
</div>
</template>
纽普
{{>产量}
欢迎来到行星行话!
主要
这看起来像铁路由器中的一个bug。铁路由器做流星。延迟路由器。开始看:第34行
你可以使用Meteor来解决这个问题
Meteor.startup(function () {
Meteor.defer(function () {Router.go('home');});
});
这很好,因为您的延迟被放在由iron router创建的延迟之下,谢谢,但这给了我完全相同的结果。这是我通常使用Router.go()的方式,但为了简化示例,我在上面对其进行了更改。(Router.go()实际上与“/”或“/home”之类的文本路径一起工作。)当它工作时,就是这样。对我来说,这是所有的时间,除了在这个关键的启动序列中。@MichaelMcC我在我的一个应用程序上尝试了它,我没有得到一个错误。你可以分享你的一些路由器配置代码吗?编辑了这个问题以包含我的所有代码,这现在引发了一个更基本的错误(??)。修复了新错误——现在我回到了旧错误(无法读取未定义的self的属性集。_locationis router.js is undefined)@MichaelMcC找到了问题的原因并更新了我的答案