Meteor.js:铁路由器Router.route()无效

时间:2014-10-17 05:57:17

标签: javascript meteor iron-router

我第一次使用Meteor.js和铁路由器,到目前为止一切顺利,除了铁路由器。我在js文件的开头调用此代码。

Router.route('/find_tutors', function () {
   this.render('content_find_tutors');
});

非常简单,没有任何有趣的事情发生在这里,问题是它不起作用。如果我导航到网址http://foobar.bar/find_tutors

,则会收到此错误消息
Exception in defer callback: Error: Oh no! No route found for path: "/find_tutors"
at Utils.extend.onRouteNotFound (http://localhost:3000/packages/iron_router.js?da7f2ac81c3fd9daebf49ce9a6980a54caa1dc17:1714:13)
at IronRouter.dispatch (http://localhost:3000/packages/iron_router.js?da7f2ac81c3fd9daebf49ce9a6980a54caa1dc17:1201:19)
at http://localhost:3000/packages/iron_router.js?da7f2ac81c3fd9daebf49ce9a6980a54caa1dc17:1666:12
at Tracker.Computation._compute (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:288:36)
at new Tracker.Computation (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:206:10)
at Object.Tracker.autorun (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:476:11)
at Utils.extend.start (http://localhost:3000/packages/iron_router.js?da7f2ac81c3fd9daebf49ce9a6980a54caa1dc17:1663:10)
at http://localhost:3000/packages/iron_router.js?da7f2ac81c3fd9daebf49ce9a6980a54caa1dc17:1458:16
at _.extend.withValue (http://localhost:3000/packages/meteor.js?012a26290d9cb731a3b52b396e571c8159d11236:891:17)
at http://localhost:3000/packages/meteor.js?012a26290d9cb731a3b52b396e571c8159d11236:430:45 

我觉得显而易见的事情是关闭但老实说这段代码很简单我不明白为什么我不能让它工作。我错误地说它应该只是渲染该模板,如果它到达那条路线?虽然我认为它甚至不在route()功能块中,但因为铁路由器甚至都没有到达那里。

这是我可以为重新创建错误提供的最小代码集(尽管无论代码大小如何都会发生错误。)

//test.js
Router.route('/find_tutors', function () {
  this.render('page');
});
if (Meteor.isClient) {
}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}

<!--- test.html --->
<head>
  <title>Test</title>
</head>

<body>
</body>

<template name="page">
  <h1>Welp.</h1>
</template>

此示例托管于cvoege.meteor.com

我是一个白痴还是有什么深刻的事情?

1 个答案:

答案 0 :(得分:4)

铁:路由器在1.0.0版本中改变了它的一些api(此时仍然在1.0.0-pre4)。

似乎你使用的是铁路:路由器1.0.0但不是当前(0.9.4)。

您可以通过

将您的铁路由器更新为1.0.0-pre4
meteor update iron:router@1.0.0-pre4

更新

似乎我滥用了更新功能。请删除然后重新安装。

meteor remove iron:router
meteor add iron:router@1.0.0-pre4