通过Session使用流星反应,我希望这段代码能够显示模板" mainMenu"如果变量" showMainMenu"设置为true,应该在首次运行时发生,但我看不到显示的模板 什么地方出了错?谢谢
/client/session.js
Session.set('showMainMenu', true);
//---main.html---------
head>
<title>Tasks</title>
</head>
<body>
<header>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="row">
{{> header}}
</div>
</div>
</nav>
</header>
{{#if showMainMenu}}
{{> mainMenu}}
{{/if}}
</body>
&#13;
microscope
├── README.txt
├── client
│ ├── main.html
│ ├── main.js
│ ├── session.js
│ ├── stylesheets
│ │ └── style.css
│ └── templates
│ ├── header
│ │ ├── header.html
│ │ └── header.js
│ └── mainMenu
│ ├── main_menu.html
│ └── main_menu.js
├── lib
│ └── collections
│ └── task.js
├── public
│ └── abc.png
└── server
├── collections.js
└── publications.js
&#13;
答案 0 :(得分:1)
您的模板无法通过名称引用Session变量来访问会话,就像您正在做的那样
{{#if showMainMenu}}
{{> mainMenu}}
{{/if}}
相反,你有几个选择,但你可以很容易地制作一个模板助手
Template.body.helpers({
showMainMenu: function() {
return Session.get('showMainMenu');
}
});
我的建议
创建一个可以返回Session变量
结果的全局帮助器Template.registerHelper('session', function( value ) {
return Session.get(value);
});
然后,在你的html中:
{{#if (session 'showMainMenu')}}
{{> mainMenu}}
{{/if}}