Ember 模板约定

Ember template convention

我正在尝试了解 Discourse 中的 EmberJS 模板约定。 这是来自 app/assets/javascripts/discourse/templates/discovery/categories.hbs

的片段
{{#discovery-categories refresh="refresh"}}
  {{component controller.categoryPageStyle
              categories=model.categories
              latestTopicOnly=controller.latestTopicOnly
              topics=model.topics}}
  {{!-- my-template --}}
{{/discovery-categories}}

discovery-categoriescomponent是什么意思? 例如,我想插入 my-template 以扩展 categories.hbs,我应该使用什么约定来使用我的模板创建文件?

  1. discovery-categories 是组件的名称 使用组件名称静态调用。

  2. 而在第二行 'component' 是一个模板助手,它使用通过 属性 controller.categoryPageStyle.

    指定的名称动态加载组件

3.my-template 是 yield 块,如果它的 yield,您可以在其中获得组件 discovery-categories 的上下文。 例如。如果 discovery-categories 有一个 属性 foo 你可以这样写

{{#discovery-categories refresh="refresh" foo="Some Text"}}
  {{component controller.categoryPageStyle
              categories=model.categories
              latestTopicOnly=controller.latestTopicOnly
              topics=model.topics}}
  {{foo}}
{{/discovery-categories}}