Handlebars.js assembly.io(handlebar.js)部分上下文/变量

Handlebars.js assembly.io(handlebar.js)部分上下文/变量,handlebars.js,partials,assemble,Handlebars.js,Partials,Assemble,我不确定车把的使用是否合适——我一直在网上搜寻,没有找到太多的建议。无论如何,我正在使用assembly.io并尝试设置一个部分来在我的站点上重复。我的/partials目录中有一个moduleResources.hbs。里面有这样的代码: <div class="dvp-content-well"> <div class="content-well-inner"> <h4>Related Resources</h3>

我不确定车把的使用是否合适——我一直在网上搜寻,没有找到太多的建议。无论如何,我正在使用assembly.io并尝试设置一个部分来在我的站点上重复。我的/partials目录中有一个moduleResources.hbs。里面有这样的代码:

 <div class="dvp-content-well">
  <div class="content-well-inner">
      <h4>Related Resources</h3>
      <ul class="fa-ul">
          <li><i class="fa-li fa fa-file-o"></i><a href="#">List Item 3</a></li>
          <li><i class="fa-li fa fa-play-circle-o"></i><a href="#">List Item 1</a></li>
          <li><i class="fa-li fa fa-cog"></i><a href="#">List Item 2</a></li>
      </ul>
  </div>
</div>
我最初设置了YAML变量,比如
resources title:Related resources
,但是您可以看到我是否使用了两次该模块,每个版本都需要有不同的标题(以及ul内容)。。。然后呢

这是车把/装配的合理使用场景吗


谢谢

我认为你的想法是正确的。您可以将不同的上下文传递给partial,并使用Handlebar模板根据上下文填充html。您甚至可能希望将其拆分为更小的部分:

{{!list-item.hbs}}
<li><i class="fa-li fa fa-{{icon}}"></i><a href="{{url}}">{{text}}</a></li>



{{!list.hbs}}
<ul class="fa-ul">
  {{#each items}}{{> list-item . }}{{/each}}
</ul>



{{!resources.hbs}}
<div class="dvp-content-well">
  <div class="content-well-inner">
    <h4>{{title}}</h4>
    {{> list .}}
  </div>
</div>



{{!my-page.hbs}}
{{> resources resources.related}}
{{> resources resources.mentioned}}



# resources.yml
related:
  title: Related Resources
  items:
    -
      icon: file-o
      url: "#"
      text: List Item 1
    -
      icon: play-circle-o
      url: "#"
      text: List Item 2
    -
      icon: fa-cog
      url: "#"
      text: List Item 3

mentioned:
  title: Resources Mentioned in this Article
    -
      icon: file-o
      url: "#"
      text: List Item 1
    -
      icon: play-circle-o
      url: "#"
      text: List Item 2
    -
      icon: fa-cog
      url: "#"
      text: List Item 3
    -
      icon: file-o
      url: "#"
      text: List Item 4
    -
      icon: play-circle-o
      url: "#"
      text: List Item 5
    -
      icon: fa-cog
      url: "#"
      text: List Item 6
{{!list item.hbs}
  • {{!list.hbs}
      {{{{}每个项目}{>列表项目。}{{{/每个}}
    {{!resources.hbs} {{title}} {{>列表。} {{!我的页面.hbs} {{>resources.related} {{>resources.resources.noteded} #资源.yml 相关的: 标题:相关资源 项目: - 图标:file-o 网址:“#” 案文:清单项目1 - 图标:play-circle-o 网址:“#” 案文:清单项目2 - 图标:fa cog 网址:“#” 案文:清单项目3 提到: 标题:本文中提到的资源 - 图标:file-o 网址:“#” 案文:清单项目1 - 图标:play-circle-o 网址:“#” 案文:清单项目2 - 图标:fa cog 网址:“#” 案文:清单项目3 - 图标:file-o 网址:“#” 案文:清单项目4 - 图标:play-circle-o 网址:“#” 案文:清单项目5 - 图标:fa cog 网址:“#” 案文:清单项目6
    我认为你的想法是正确的。您可以将不同的上下文传递给partial,并使用Handlebar模板根据上下文填充html。您甚至可能希望将其拆分为更小的部分:

    {{!list-item.hbs}}
    <li><i class="fa-li fa fa-{{icon}}"></i><a href="{{url}}">{{text}}</a></li>
    
    
    
    {{!list.hbs}}
    <ul class="fa-ul">
      {{#each items}}{{> list-item . }}{{/each}}
    </ul>
    
    
    
    {{!resources.hbs}}
    <div class="dvp-content-well">
      <div class="content-well-inner">
        <h4>{{title}}</h4>
        {{> list .}}
      </div>
    </div>
    
    
    
    {{!my-page.hbs}}
    {{> resources resources.related}}
    {{> resources resources.mentioned}}
    
    
    
    # resources.yml
    related:
      title: Related Resources
      items:
        -
          icon: file-o
          url: "#"
          text: List Item 1
        -
          icon: play-circle-o
          url: "#"
          text: List Item 2
        -
          icon: fa-cog
          url: "#"
          text: List Item 3
    
    mentioned:
      title: Resources Mentioned in this Article
        -
          icon: file-o
          url: "#"
          text: List Item 1
        -
          icon: play-circle-o
          url: "#"
          text: List Item 2
        -
          icon: fa-cog
          url: "#"
          text: List Item 3
        -
          icon: file-o
          url: "#"
          text: List Item 4
        -
          icon: play-circle-o
          url: "#"
          text: List Item 5
        -
          icon: fa-cog
          url: "#"
          text: List Item 6
    
    {{!list item.hbs}
    
  • {{!list.hbs}
      {{{{}每个项目}{>列表项目。}{{{/每个}}
    {{!resources.hbs} {{title}} {{>列表。} {{!我的页面.hbs} {{>resources.related} {{>resources.resources.noteded} #资源.yml 相关的: 标题:相关资源 项目: - 图标:file-o 网址:“#” 案文:清单项目1 - 图标:play-circle-o 网址:“#” 案文:清单项目2 - 图标:fa cog 网址:“#” 案文:清单项目3 提到: 标题:本文中提到的资源 - 图标:file-o 网址:“#” 案文:清单项目1 - 图标:play-circle-o 网址:“#” 案文:清单项目2 - 图标:fa cog 网址:“#” 案文:清单项目3 - 图标:file-o 网址:“#” 案文:清单项目4 - 图标:play-circle-o 网址:“#” 案文:清单项目5 - 图标:fa cog 网址:“#” 案文:清单项目6
    很好,谢谢你!我知道你要做什么了,它完全解决了一些问题。我想知道是否有可能将resources.yml合并到resources.hbs部分中?对我来说感觉有点整洁-我要拍一张照片是的,你可以把它放在
    参考资料.hbs
    的前面,它将作为
    参考资料
    在数据上下文中可用,就像
    参考资料.yml
    数据可用一样。很好,谢谢dwoob!我知道你要做什么了,它完全解决了一些问题。我想知道是否有可能将resources.yml合并到resources.hbs部分中?我觉得有点整洁-我要拍一张照片是的,你可以把它放在
    参考资料.hbs
    的最前面,它将作为
    参考资料
    在数据上下文中可用,就像
    参考资料.yml
    数据可用一样。