流星到单个页面的路由

时间:2015-02-12 01:05:08

标签: javascript meteor

我正在使用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');
    }
});

1 个答案:

答案 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>