如何为Aurelia中的列表中的项目呈现不同的视图?

时间:2016-01-14 16:42:22

标签: typescript aurelia

我目前正在与Aurelia一起构建一个仪表板,并且对这个框架非常陌生。在仪表板中,我希望列表中包含不同类型的小面板。

我该怎么做?我是否必须在嵌入视图中包含一个开关来确定要渲染的视图?如果是这样我怎么能这样做?

任何指针都表示赞赏! :)

1 个答案:

答案 0 :(得分:6)

使用<compose>可能值得。假设您的主仪表板组件正在引入其他组件:

<强> dashboard.html

<template>
  <Component-A />
  <Component-B />
  <Component-C />
  <Component-D />
</template>

我们可以使用<compose>以及元数据数组重写这些组件,而不是明确列出这些组件:

<强> dashboard.html

<template>
  <div repeat.for=”component in components”>
    <compose view-model=”${component.viewModel}” />
  </div>
</template>

组件数组

export const components = [
    {viewModel:  ‘component-a.js’ },
    {viewModel:  ‘component-b.js’ },
    {viewModel:  ‘component-c.js’ },
    {viewModel:  ‘component-d.js’ }
];

这是<compose>背后的一般概念:动态视图生成。但是这里有一些额外的资源: