2016-02-05 71 views
0

我想了解使用Iron Router爲MongoDB數據庫設置數據上下文的最佳方式。在流星和鐵路路由器中設置數據上下文

爲了說明我工作的一個相當基本的電影評論的項目,並將其部署到模在http://reviews-48062.onmodulus.net/

這將返回評價的列表,而是想用路由創建其他頁面。我已經在本地安裝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> 

我的理解是,數據上下文設置爲「家」的模板,所以不知道代碼有什麼問題。

任何意見非常讚賞。

+0

在http://reviews-48062.onmodulus.net/它似乎工作。它與你的代碼有什麼不同嗎? –

回答

0

tasks不是發送到該對象的有效屬性。您需要改爲使用data來設置IronRouter的數據上下文。更改tasksdata,然後建立一個幫助您的模板來獲得任務的數據:

Template.Home.helpers({ 
    tasks() { 
     return Tasks.find({}, {sort: {title: 1}, limit: 10}); 
    } 
}); 
+0

非常感謝斯蒂芬。我已經設置了助手,它正常工作。 – user3801462

0

可以返回與紅外數據上下文,但它需要被命名爲data

Router.route('/', function() { 
    this.render('Home', { 
    data: function() { 
    return { tasks: Tasks.find({}, {sort: {title: 1}, limit: 10}); } }; 
    }); 
}); 

這將將數據上下文返回到您的模板,然後tasks鍵將包含任務的遊標。

+0

非常感謝米歇爾。這工作。 – user3801462