我使用assemble对新网站进行原型设计。
我想大大模仿我的代码,就像布拉德弗罗斯特用他的pattern lab传福音一样。
示例
基本上我想要一个标题部分(" atom"在模式实验室中说话)在英雄部分内使用("分子"):
title.hbs
<h1 class="{{class}}">{{text}}</h1>
的 hero.hbs
<section class="hero-unit">
{{!-- image and stuff --}}
<header class="hero-description">
{{> title }}
{{> subTitle }}
</header>
</section>
英雄部分应该是通用的;我想从每个特定页面的JSON文件传递数据。对于我的页面,我使用提供块的默认布局。例如:
default.hbs
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
{{#block "hero"}}{{/block}}
{{#block "body"}}{{/block}}
</body>
</html>
的 myPageWithHero.hbs
{{#extend "default"}}
{{#content "hero"}}
{{ >hero }}
{{/content}}
{{#content "body"}}
{{!-- myPageContent --}}
{{/content}}
{{/extend}}
现在我想通过我的myPageWithHero.json文件在英文部分内部的标题部分内设置{{text}}。那可能吗?或者我的方法(我在这个非常简单的例子中描述过)完全紊乱了?
欢呼任何指针! : - )
答案 0 :(得分:0)
@polarbirke,因为您要使用myPageWithHero.json
中的数据,在呈现page
时,myPageWithHero.hbs
对象上的数据将可用,因此您可以将该对象传递给hero
1}}偏。这将为该部分设置上下文,title
部分将继承该上下文:
{{#extend "base"}}
{{#content "hero"}}
{{> hero page}}
{{/content}}
{{#content "body"}}
{{!-- myPageContent --}}
{{/content}}
{{/extend}}
如果您希望数据中包含其他对象,则可以将其传递出去:
data.json
{
"title1": {
"class": "success",
"text": "Good Title"
},
"title2": {
"class": "error",
"text": "Bad Title"
}
}
myPageWithHero.hbs
{{#extend "base"}}
{{#content "hero"}}
{{> hero title1}}
{{/content}}
{{#content "body"}}
{{!-- myPageContent --}}
{{/content}}
{{/extend}}
我希望这会有所帮助,如果您有任何问题,请与我联系。