【发布时间】:2013-05-06 09:33:10
【问题描述】:
如果您能深入了解这是否是一种“正确”的做事方式,以及导致我看到的错误的原因,我将不胜感激。
我已将骨干添加到我的基础流星安装meteor add backbone
然后我建立一个router.js文件如下(仅显示2页为例);
var Router = Backbone.Router.extend({
routes: {
"": "index",
"help": "help",
...
},
index: function() {
Session.set('currentPage', 'homePage');
},
login: function() {
Session.set('currentPage', 'loginPage');
},
...
然后对于页面我有模板看起来像这样的 html 文件...
<template name="homepage">
{{#if route}}
You're at the Home Page!
{{/if}}
</template>
然后对于主页,我有一个包含以下内容的 html 文件;
<body>
...
{{> homepage}}
{{> loginpage}}
{{> helppage}}
...
</body>
这适用于除指定的“主页”之外的所有页面,无论我在网站的哪个位置,此模板都会始终呈现。例如myapp/ 作为根页面只显示主页模板,而 myapp/loginpage 显示登录页面模板和主页模板。所以每一页都显示首页模板的较量。
有什么见解吗? (或更好的结构方式)。
谢谢
【问题讨论】:
-
在输入所有内容并考虑之后,我想这是因为“”与我网站的根 url 匹配,因此它返回您在“索引”页面上无论如何您在网站上的位置。如果是这样的话,有没有办法解决这个问题?我本来可以想象将会话变量设置为不'homePage'应该可以解决这个问题。
-
您可能必须在主干历史记录开始中定义您的初始/基本 url。看这个问题的答案stackoverflow.com/questions/9368151/…
标签: backbone.js meteor