Ember Handlebars模板有条件地传递一些属性。

问题描述 投票:0回答:2

我有一个自定义的网格组件,我试图实现一个自定义的标题(作为参数传递给my-grid)然而,我希望 "customHeader "是有条件的,即只有当某些条件为真时,我才需要添加该属性,否则该属性不应该被设置为passed。

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

{{/my-grid}}
javascript ember.js handlebars.js
2个回答
0
投票

没有办法做到这一点。传递给组件的参数列表是在构建时定义的。

然而你可以这样做。

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

那么如果 {{#if @customHeader}} 在组件内使用,它将是 false.

然而 Object.keys(this.args) 组件内的glimmer组件将始终包含 customHeader. 没有办法避免这个问题。


0
投票

虽然很啰嗦,但如果你真的不想通过,你可以。

{{#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}}
© www.soinside.com 2019 - 2024. All rights reserved.