Angular - 在 JSX 和模板文字中转义变量以将其用作参数

Angular - Escaping variable in JSX and template literal to use it as parameter

我目前在 JSX 模板中工作,我向模板声明了一个局部数据变量,并尝试将其作为参数传递到 Angular 属性之一中的组件导出。问题是 JIT 编译器给我标记了一个解析错误,好像在模板文字中以这种方式转义数据是不正确的。这是代码:

const data = [
  {
    fontIcon: 'settings',
    action: () => { return alert(1) }
  },
  {
    fontIcon: 'favorite',
    action: () => { return alert(2) }
  }
]

export const MenuExpansionPanel = {
  render: (args: Interface) => ({
    props: args,
    template: `
      <ui-kit-menu-expansion-panel
      title="Menu title"
      [disabled]="false"
      [expanded]="true"
      [hideToggle]="false"
      togglePosition="after"
      [draggable]="false"
      [icons]="${data}"
      >
        Content
      </ui-kit-menu-expansion-panel>
    `
  })
}

错误:

如果您有解决办法,请不要犹豫。 谢谢!

解决方案是:

export const MenuExpansionPanel = {
  render: (args: Interface) => ({
    props: {
      data: [
        {
          'fontIcon': 'settings',
          'action': () => {
            return alert('Settings icon clicked!')
          }
        },
        {
          'fontIcon': 'favorite',
          'action': () => {
            return alert('Favorite icon clicked!')
          }
        }
      ],
      ...args
    },
    template: `
              <ui-kit-menu-expansion-panel
              title="Menu title"
              [disabled]="false"
              [expanded]="true"
              [hideToggle]="false"
              togglePosition="after"
              [draggable]="false"
              [icons]="data"
              >
                Content
              </ui-kit-menu-expansion-panel>
            `
        })
    }