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-categories
和component
是什么意思?
例如,我想插入 my-template
以扩展 categories.hbs
,我应该使用什么约定来使用我的模板创建文件?
discovery-categories
是组件的名称
使用组件名称静态调用。
而在第二行 '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}}
我正在尝试了解 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-categories
和component
是什么意思?
例如,我想插入 my-template
以扩展 categories.hbs
,我应该使用什么约定来使用我的模板创建文件?
discovery-categories
是组件的名称 使用组件名称静态调用。而在第二行 '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}}