【问题标题】:Metoer.js: iron-router Router.route() not workingMeteor.js:铁路由器Router.route()不工作
【发布时间】:2014-10-23 15:34:57
【问题描述】:

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

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

真的很简单,这里没有任何有趣的事情发生,问题是它不起作用。如果我导航到 URL 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

我是白痴还是有什么深层次的事情发生?

【问题讨论】:

    标签: javascript meteor iron-router


    【解决方案1】:

    iron:router 在 1.0.0 版本中更改了部分 api(目前仍在 1.0.0-pre4 中)。

    您似乎正在以 1.0.0 方式使用 iron:router,而不是当前 (0.9.4) 方式。

    您可以通过

    将您的 Iron:router 更新到 1.0.0-pre4
    meteor update iron:router@1.0.0-pre4
    

    更新

    看来我误用了更新功能。请删除然后重新安装它。

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

    【讨论】:

    • 谢谢!我不得不切换回 1.0.0-pre4,现在一切正常:)。但是,您给出的那条线不起作用,似乎不可能使用流星更新到特定版本,调用meteor remove iron:router 然后meteor add iron:router@=1.0.0-pre4 确实有效。确保你有等号。
    • 顺便说一句,这不是切换回来。 1.0.0-pre4 是最新版本(此时)。你走在最前沿!
    猜你喜欢
    • 2016-05-05
    • 2013-12-24
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2014-09-07
    • 2017-08-15
    • 2016-01-22
    • 2016-05-14
    相关资源
    最近更新 更多