Meteor:设置起始页(位置)

Meteor:设置起始页(位置),meteor,iron-router,Meteor,Iron Router,如何让Meteor应用程序在特定页面上启动?如果您无法控制,那么浏览器会记住您上次关闭应用时在应用中的位置,并尝试加载该旧位置。这很好,如果这是你想要的,但如果不是,你会怎么做 在我的应用程序中使用iron router,这一功能过去可以正常工作: Meteor.startup(function () { Router.go('/'); }); 现在这在Router.js中抛出一个错误,抱怨self.\u位置未定义。这就好像对Router.go()的调用现在进行得太快了。有没有办法知道

如何让Meteor应用程序在特定页面上启动?如果您无法控制,那么浏览器会记住您上次关闭应用时在应用中的位置,并尝试加载该旧位置。这很好,如果这是你想要的,但如果不是,你会怎么做

在我的应用程序中使用iron router,这一功能过去可以正常工作:

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找到了问题的原因并更新了我的答案