我正在尝试从我的主页导航到我的Meteor应用程序中的另一个页面(模板)。
我安装了iron:router包并添加了以下代码:
首先,我的html文件中的这个模板(占位符内容):
<template name="scheduleOpenExisting">
<h2>Open Existing Schedule</h2>
</template>
然后在我的.js文件中:
Router.route('/scheduleOpenExisting');
...最后到菜单项:
<li><a href="{{pathFor route='scheduleOpenExisting'}}">Open Existing</a></li>
...我改变了:
<li> <a href="#">Open Existing</a>
当我选择该菜单项时,它会将网址从http://localhost:3000/更改为http://localhost:3000/scheduleOpenExisting,但它会将scheduleOpenExisting模板附加到页面底部,而不是导航到新页面,或者以Ajaxy方式替换现有内容。
那么如何让scheduleOpenExisting模板替换而不是附加到“主页”?
我还没来得及测试它(这是一个家庭项目,我不得不去上班),但是我将所有代码从单个.html和.js文件移到了不同的地方:< / p>
Scheduler
Client (folder)
main.html (moved the two templates from scheduler.html for the "first page" here)
main.js (moved the .isClient code from scheduler.js here)
Templates (folder)
openExistingSchedule.html (contains a template; will add more later, as the project grows)
Server (folder)
scheduler.js (moved the .isServer code here)
...并且会看到它是否仍然有效,并以这种新项目结构的方式运作。
它仍然做同样的事情,即使使用改进后的结构 - 模板也会插入页面底部。
尽管如此,在将创建的文件全部移动之后,Meteor仍然可以正常运行。其他环境可能会破坏,并在做这样的事情时抛出误导的错误消息。
在\ client \ main.html中,我有这个:
<head>
<TITLE>Crew Scheduler</TITLE>
</head>
<body TEXT="#000000">
<div class="container">
{{> mnuScheduler}}
{{> tblScheduler}}
</div>
</body>
<template name="mnuScheduler">
<ul class="top-level-menu">
<li> <a href="#">Schedules</a>
<ul class="second-level-menu">
<li><a href="{{pathFor route='scheduleOpenExisting'}}">Open Existing</a></li>
. . .<template name="tblScheduler">. . .
在\ client \ templates \ openExistingSchedule.html我有这个:
<template name="scheduleOpenExisting">
<h2>Open Existing Schedule</h2>
</template>
...在\ client \ routing.js我有这个:
Router.route('/scheduleOpenExisting');