我正在学习流星来构建快速网站原型。 我想了解如何生成一组值来填充网站模板和部分。将值传递给流星部分
我在main.js一个模板的layout.html
<template name="layout">
<div class="container">
<header role="banner">
{{>site-header}}
</header>
<h1>This is {{siteLogo}}</h1>
<main role="main">
{{ yield }}
</main>
<footer role="contentinfo">
{{> site-footer }}
</footer>
</div>
</template>
我定义如下:
Meteor.startup(function(){
Session.set('siteLogo', 'the logo');
});
Template.site-header.helpers({
siteLogo: function(){ return Session.get('siteLogo'); }
});
Template.layout.helpers({
siteLogo: function(){ return Session.get('siteLogo'); }
});
有了这个,我可以通过siteLogo的价值的layout.html。
我有一个网站,header.html中部分
<template name="site-header">
<h1>{{siteLogo}}</h1>
</template>
我似乎无法能够siteLogo的值传递给部分。有没有办法做到这一点? 是否需要创建一个Session变量来预先填充一些值,或者我可以创建一个json设置列表并访问全局值?
的东西,会去main.js,像YAML配置文件中杰基尔网站:
siteSettings = [
{
siteLogo: "some brand name",
otherValue: "something else"
}
]
更新
我有点困惑,我我一定在做错事。 我创建了一个快速新流星应用程序来测试这个。
我有main.html中
<head>
<title>handlebar-helper</title>
</head>
<body>
{{> header}}
{{> hello}}
{{> footer}}
</body>
<template name="hello">
<h1>Hello World!</h1>
{{greeting}}
<input type="button" value="Click" />
</template>
<template name="header">
<header>
<h1>{{ headline }}</h1>
<p>tagline</p>
</header>
</template>
<template name="footer">
<footer role="contentinfo">
<h1>{{ headline }}</h1>
<small>copyright</small>
</footer>
</template>
而main.js
if (Meteor.isClient) {
Template.hello.greeting = function() {
return "Welcome to handlebar-helper.";
};
Template.hello.events({
'click input' : function() {
// template data, if any, is available in 'this'
if (typeof console !== 'undefined')
console.log("You pressed the button");
}
});
Meteor.startup(function(){
Session.set('headline', 'My fancy headline');
});
Handlebars.registerHelper('headline', function(){
return Session.get('headline');
});
}
if (Meteor.isServer) {
// server code here
}
,我不能仍然合格headline
值成>footer
>header
,如果我尝试将Session.set
放入Meteor.isServer
区块,出现语法错误,Session is not defined
干杯
更新的代码有一个错字 - ''Handlebars.regesterHelper()'是正确的,如下面的richsilv答案。 – user728291
我是一个白痴,我重新读它,我不知道有多少次... –