我有一个自定义网格组件,我正在尝试实现一个自定义头(作为参数传递给my-grid)。但是,我希望“customHeader”是有条件的。即,只有当某些条件为真时,我才需要添加该属性,否则该属性根本不应被设置/传递。是否可以在Handlebars模板本身中实现这一点?
{{#my-grid model=myModel customHeader=(component 'my-custom-grid-header') as |grid|}} {{/my-grid}}
e5nqia271#
没有办法做到这一点。传递给组件的参数列表在生成时定义。但是,您可以这样做:
customHeader=(if @something (component 'my-custom-grid-header') null)
然后,如果在组件内部使用{{#if @customHeader}},则它将是false。然而,闪烁组件中的Object.keys(this.args)总是包含customHeader,这是无法避免的。
{{#if @customHeader}}
false
Object.keys(this.args)
customHeader
mgdq6dx12#
这是冗长的,但如果你真的不想通过它,你可以这样做:
{{#if customeHeader}} {{#my-grid model=myModel customHeader=(component 'my-custom-grid-header') as |grid|}} {{/my-grid}} {{else}} {{#my-grid model=myModel as |grid|}} {{/my-grid}} {{/if}}
2条答案
按热度按时间e5nqia271#
没有办法做到这一点。传递给组件的参数列表在生成时定义。
但是,您可以这样做:
然后,如果在组件内部使用
{{#if @customHeader}}
,则它将是false
。然而,闪烁组件中的
Object.keys(this.args)
总是包含customHeader
,这是无法避免的。mgdq6dx12#
这是冗长的,但如果你真的不想通过它,你可以这样做: