Ember,如何为 "index" 和 "show" 重复使用相同的 "partial"

Ember, how to reuse same "partial" for "index" and for "show"

这是我的情况的简化版本:

<!-- app/templates/charts/index.hbs -->
{{#each model as |chart|}}
  {{partial "charts/chart"}}
{{/each}}

<!-- app/templates/charts/show.hbs -->
{{partial "charts/chart"}}

<!-- app/templates/charts/-chart.hbs -->  
{{chart.title}}

部分 -chart.hbs 适用于 index 模板,但不适用于 show,因为对于 show,图表包含在变量 [=19= 中].

我该如何解决这个问题,以便我可以为 indexshow 重复使用相同的部分?

据我所知,Ember Components更是如此。

让我稍微解释一下,让您入门。

组件是附加了一些结构的可重用代码位。这意味着一个组件将具有:

  • 一个模板(*.hbs 文件)
  • 一个组件JS文件

您可以将局部模板移动到组件中(我们将其命名为 chart),如下所示:

  1. 将代码按原样移动到新的组件模板中。
  2. 在你的模板中使用 variables/objects,就像你现在可能做的那样
  3. 而不是用 {{partial "charts/chart"}} 渲染它 {{chart componentObject=localObject}}
  4. 这会将外部对象(无论是模型还是其他)传递给组件的上下文,如下所示:

_

// context code:
<h1>{{localobject.title}}</h1>

{{chart componentObject=localObject}}

// component code
<p>{{componentObject.author}}</p>

_

您的里程可能会有所不同。请随时评论 and/or 改进我的答案:-)