我正在使用meteor创建投资组合,并成功循环数据库中的投资组合项目(使用fixtures创建)。我在尝试按下某个项目并转到其特定页面时遇到问题。我确信这很简单,但我对Meteor很新。
我的结构如下:
收集:
PortfolioItems = new Mongo.Collection('portfolioItems');
公开:
Meteor.publish('portfolioItems', function() {
return PortfolioItems.find();
});
投资组合页面模板:
<template name="portfolio">
<h1>Portfolio</h1>
<hr>
{{#each portfolioItems}}
{{> portfolioItem}}
{{/each}}
<a href="{{pathFor 'home'}}">Go Back Home</a>
</template>
投资组合页面模板助手:
Template.portfolio.helpers({
portfolioItems: function() {
return PortfolioItems.find({});
}
});
投资组合项目模板:
<template name="portfolioItem">
<h1>{{title}}</h1>
</template>
最后我的路线:
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
notFoundTemplate: 'notFound'
});
Router.route('/', function() {
this.render('home');
}, {
name: 'home'
});
Router.route('/about', function() {
this.render('about');
});
Router.route('/portfolio', function() {
this.render('portfolio');
}, {
name: 'portfolio',
waitOn: function() {
return Meteor.subscribe('portfolioItems');
}
});
答案 0 :(得分:1)
首先创建路线。
Router.map(function () {
this.route('portfolioItem', {
path: '/portfolioIndividual/:_id',
waitOn: function(){
return Meteor.subscribe('portfolioItems');
},
data: function(){
if(this.ready()){
return PortfolioItems.findOne({_id: this.params._id});
}else{
this.render('loading')
}
}
});
});
HTML:
<template name="portfolio">
{{#each portfolioItems}}
<a href="/portfolioIndividual/this._id">Take a look at this awesome photo</a>
{{/each}}
</template>
<template name="portfolioItem">
<!-- portfolio item content -->
</template>