我正在尝试使用 Meteor、Meteor Router 和 Bootstrap 创建一个用于快速原型制作的简单项目。
这是目录结构
meteor-prototypes/
|
|--- .meteor/
|--- prototypes/
| |
| |--- example/
| |
| |--- example.coffee
| |--- example.css
| |--- example-index.html
| |--- example-more.html
|
|--- prototypes.coffee
|--- index.html
|--- smart.json
|--- smart.lock
该example
文件夹代表一个原型,可在 (例如) 处访问http://localhost:3000/prototypes/example/
。理想情况下,您只需复制example/
一个新名称(例如 new-example)并访问http://localhost:3000/prototypes/new-example/
.
这样做的问题是 Meteor 默认情况下会在整个项目目录中搜索 HTML 文件并将它们全部加载。我需要做的是根据 URL(通过 Meteor 路由器)检查我们正在查看的原型,并仅加载该文件夹中的 .html 文件(例如example/
)。
有没有办法告诉 Meteor 只加载特定子目录中的 .html 文件?或者另一种方式来实现这一点?
对于那些好奇或有帮助的人,以下是上面目录结构中提到的每个文件包含的内容:
索引.html
<head>
<title>desktime-prototypes</title>
</head>
<body>
{{ renderPage }}
</body>
<template name="home">
<h1>We have the following prototypes available:</h1>
<ul>
<li><a href="/example/">Example</a></li>
</ul>
</template>
原型.咖啡
if (Meteor.isClient)
Meteor.Router.add
'': 'home'
'/:prototype': (params) ->
return params
'/:prototype/:page': (params) ->
return params[1]
if (Meteor.isServer)
Meteor.startup ->
# code to run on server at startup
/prototypes/example.coffee
if Meteor.isClient
Template.example.greeting = ->
return "Welcome to prototypes."
Template.example.rendered = ->
# This function will fire when this specific template gets rendered,
# Great place to fire jQuery plugins, or anything else that needs
# to happen when the DOM is ready.
Template.example.events
'click input' : ->
# template data, if any, is available in 'this'
alert 'Button clicked!'
原型/示例/example-index.html
<template name="example">
<h1>Welcome to the example prototype!</h1>
{{> example-more }}
</template>