Handlebars 参考组件上一级目录

Handlebars reference component one directory up

我有以下代码:

{{#tabs-controls initial='content' modal="true" title="Hotspots" tabs=tabs style="on-ground" as |uniqueTarget currentTab|}}
  <div class="tab-pane active" id="content-{{uniqueTarget}}" role="tabpanel">
    //... Code
  </div>
{{/tabs-controls}}

但是 tabs-controls 是一个位于调用它的组件目录之外的组件。

-components
   -tabs-control
   -hotspots
       -hotspots-container
       -hotspots-content
              -template.hbs

我试过:

{{#../tabs-control}} 
{{#../..tabs-control}}

两者都没有井号...我得到的只是编译器错误。

实现此目标的正确方法是什么?

Handlebars 中的这种相对路径更多是关于导航渲染上下文,而不是关于文件布局。使用示例 from the Handlebars documentation,如果您使用的是 each 的上下文切换版本,您可以这样做:

{{permalink}}
{{#each arrayOfObjects}}
  {{..permalink}} <!-- you are accessing the permalink property above -->
  {{permalink}}  <!-- you are accessing the permalink property of the of the object being "eached"  -->
{{/each}}

但是,这不适用于 Ember,因为助手的上下文切换形式已被删除。

考虑组件路径的方式是 /components 是根,所以如果你有 /components/tabs-control,你调用它的方式是 {{tabs-control}}。如果要渲染/components/hotspots/hotspots-container,方法是{{hotspots/hotspots-container}}.