ember.js Ember Handlebars模板有条件地传递某些属性

pbpqsu0x  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(177)

我有一个自定义网格组件,我正在尝试实现一个自定义头(作为参数传递给my-grid)。但是,我希望“customHeader”是有条件的。即,只有当某些条件为真时,我才需要添加该属性,否则该属性根本不应被设置/传递。是否可以在Handlebars模板本身中实现这一点?

{{#my-grid
    model=myModel
    customHeader=(component 'my-custom-grid-header')
    as |grid|}}

{{/my-grid}}
e5nqia27

e5nqia271#

没有办法做到这一点。传递给组件的参数列表在生成时定义。
但是,您可以这样做:

customHeader=(if @something (component 'my-custom-grid-header') null)

然后,如果在组件内部使用{{#if @customHeader}},则它将是false
然而,闪烁组件中的Object.keys(this.args)总是包含customHeader,这是无法避免的。

mgdq6dx1

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}}

相关问题