使用Meteor的静态站点的路由器

时间:2014-11-05 06:00:29

标签: meteor iron-router

我是Meteor的新手,对javascript的经验有限。我已经搜索了所有的堆栈帖子和网页,以获得关于如何使用Iron Router程序包来路由静态页面的一个很好的教程,似乎无法想象它。我很想有人帮助我了解如何为Home和About设置router.js文件。我已经玩了很多代码,但这是我在发布之前所拥有的。事实上,我似乎正在努力掌握路由的工作原理以及铁路由器的所有各种功能,然后将这些路由连接到导航栏,我可以在它们之间导航。提前感谢您提供的任何帮助。

的客户机/模板/应用/的layout.html

<template name="layout">
  <div class="container">
    {{> yield}}
  </div>
</template>

LIB / router.js

Router.configure({
  layoutTemplate: 'layout'
});

Router.route('/', function () {
  this.render('home', {
    template: 'home'
  });

  this.render('about', {
    template: 'about'
  });
});

模板/ home.html的

<template name="home">
  <div class="container">
    <h2>Home</h2>
  </div>
</template>

2 个答案:

答案 0 :(得分:1)

您上面的代码看起来是正确的。

一个怪癖是你为/路线渲染两页。你应该这样:

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

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

请记住this.render将第一个参数作为模板,因此无需再单独定义它。

新的about.html页面:

<template name="home">
    <div class="container">
        <h2>Home</h2>
    </div>
</template>

现在您可以使用//about页面(至少我希望我没有错过任何内容)

答案 1 :(得分:0)

您的文件夹上可以有3个模板

  

客户端/浏览次数

,名称为

about.html
main.html
admin.html
layout.html
(for example)

所以在about.html中你有这个

<template name="about">
<h1> hello from about page
</template>

<template name="main">
<h1> hello from about page
</template>

<template name="admin">
<h1> hello from about page
</template>

Layout.html文件需要包含渲染的产量。

<template name="layout">
  {{> yield}}
  {{admin}}
  {{about}}
  {{main}}
</template>

因此,您可以使用布局模板作为母版页,并调用3个模板按路径分隔,如何分配路径并告诉meteor使用该布局,请使用此js代码

JS

Router.configure({
  layoutTemplate: 'layout'
});
Router.map(function(){
  this.route('admin', {path: '/admin'});
});
Router.map(function(){
  this.route('about', {path: '/about'});
});
Router.map(function(){
  this.route('main', {path: '/'});
});

至少这对我有用,希望这对你有用