灰烬模板惯例

时间:2016-10-24 12:13:42

标签: javascript ember.js discourse

我试图了解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 个答案:

答案 0 :(得分:1)

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

  2. 而在第二行'component'是一个模板助手,它使用通过属性controller.categoryPageStyle指定的名称动态加载组件。

  3. 3.my-template是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}}