Javascript 如何将变量传递给手柄中的零件(带Assembly的v1.3)?
我正在使用,它目前使用的是车把1.3。在我的模板中,我使用picture元素with,它使用当前的specJavascript 如何将变量传递给手柄中的零件(带Assembly的v1.3)?,javascript,html,handlebars.js,assemble,picturefill,Javascript,Html,Handlebars.js,Assemble,Picturefill,我正在使用,它目前使用的是车把1.3。在我的模板中,我使用picture元素with,它使用当前的spec语法: <picture> <!--[if IE 9]><video style="display: none;"><![endif]--> <source srcset="assets/img/responsive/example-xl.jpg" media="(min-width: 1000px)"> <sou
语法:
<picture>
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="assets/img/responsive/example-xl.jpg" media="(min-width: 1000px)">
<source srcset="assets/img/responsive/example-l.jpg" media="(min-width: 800px)">
<source srcset="assets/img/responsive/example-m.jpg">
<!--[if IE 9]></video><![endif]-->
<img srcset="assets/img/responsive/example-m.jpg" alt="An example responsive image">
</picture>
用这部分
<picture>
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="assets/img/responsive/{{name}}-xl{{ext}}" media="(min-width: 1000px)">
<source srcset="assets/img/responsive/{{name}}-l{{ext}}" media="(min-width: 800px)">
<source srcset="assets/img/responsive/{{name}}-m{{ext}}">
<!--[if IE 9]></video><![endif]-->
<img srcset="assets/img/responsive/{{name}}-m{{ext}}" alt="{{alt}}">
</picture>
有没有办法用我的车把版本做到这一点?我知道这是Handlebars 2.0中的原生版本,但不幸的是,我无法将其更新到该版本,因为它集成在Assembly中。或者有没有其他推荐的方法
p、 美国:我读过关于使用
{{>picture this}}
,但我不确定是否以及如何在一个页面中使用多个图片(以及在一个部分中使用多个变量)。另外,我也尝试过使用,但这种语法有点笨拙,比我上面描述的更详细,所以我想知道是否有更有效的方法来执行类似操作。如果将此与Assembly处理数据文件的方式结合起来,您可以有一个名为pictures.json
或pictures.yaml
的数据文件(取决于您希望如何管理数据)
在pictures.json
中:
{
"example": {
"name": "example",
"ext": ".jpg",
"alt": "Example image"
},
"another": {
"name": "another",
"ext": ".png",
"alt": "Another example image"
}
}
然后,您可以使用上面提到的语法调用Handlebar文件的分部:
{{> picture pictures.example}}
{{> picture pictures.another}}
现在,picture
partial的上下文是传入的json对象,因此您可以一般地引用片段:
<picture>
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="assets/img/responsive/{{name}}-xl{{ext}}" media="(min-width: 1000px)">
<source srcset="assets/img/responsive/{{name}}-l{{ext}}" media="(min-width: 800px)">
<source srcset="assets/img/responsive/{{name}}-m{{ext}}">
<!--[if IE 9]></video><![endif]-->
<img srcset="assets/img/responsive/{{name}}-m{{ext}}" alt="{{alt}}">
</picture>
我希望这会有帮助,直到我们得到装配更新到使用车把2.0
<picture>
<!--[if IE 9]><video style="display: none;"><![endif]-->
<source srcset="assets/img/responsive/{{name}}-xl{{ext}}" media="(min-width: 1000px)">
<source srcset="assets/img/responsive/{{name}}-l{{ext}}" media="(min-width: 800px)">
<source srcset="assets/img/responsive/{{name}}-m{{ext}}">
<!--[if IE 9]></video><![endif]-->
<img srcset="assets/img/responsive/{{name}}-m{{ext}}" alt="{{alt}}">
</picture>