【发布时间】:2016-02-05 11:08:21
【问题描述】:
我正在寻求一些建议,以了解使用 Iron Router 为 MongoDB 数据库设置数据上下文的最佳方式。
为了说明我正在从事一个相当基本的电影评论项目,并通过 http://reviews-48062.onmodulus.net/ 部署到 Modulus
这将返回评论列表,但希望使用路由来创建其他页面。我在本地安装了 Iron Router,并有一个本地 MongoDB 集合(称为任务),其中包含一些数据。
重新编写了一些代码以包含路由信息。这可以成功显示路线,但似乎没有将任何数据拉入 {{each}} 语句。
我的JS代码如下:
// define Mongodb collection
Tasks = new Mongo.Collection("tasks");
// set up home route and database query
Router.route('/', function () {
this.render('Home', {
tasks: function () { return Tasks.find({}, {sort: {title: 1}, limit: 10}); }
});
});
// define routes
Router.route('/one');
Router.route('/two');
Router.route('/three');
HTML 代码是:
<head>
<title>Iron router sandbox</title>
</head>
<body>
</body>
<template name="Home">
{{> Nav}}
<h1>Home</h1>
<p>This is a test</p>
{{#each tasks}}
<li>
<strong>{{title}}</strong>
<p>Directed by {{director}}</p>
<p>{{review}}</p>
<p>Available on: {{format}}</p>
</li>
{{/each}}
</template>
<template name="One">
{{> Nav}}
<h1>Page One</h1>
<p>Some more text.</p>
</template>
<template name="Two">
{{> Nav}}
<h1>Page Two</h1>
<p>A bit more text.</p>
</template>
<template name="Three">
{{> Nav}}
<h1>Page Three</h1>
<p>Even more text.</p>
</template>
<template name="Nav">
<ul>
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/one">Page One</a>
</li>
<li>
<a href="/two">Page Two</a>
</li>
<li>
<a href="/three">Page Three</a>
</li>
</ul>
</template>
我的理解是数据上下文是为“Home”模板设置的,所以不确定代码有什么问题。
非常感谢任何建议。
【问题讨论】:
-
在reviews-48062.onmodulus.net 中似乎有效。它与您的代码不同吗?
标签: meteor iron-router