如何在同一个应用程序中打开多个页面?

时间:2016-08-02 07:17:40

标签: aurelia aurelia-router

我知道Aurelia是SPA的框架,但我需要在浏览器中同时打开多个页面。

我想在一个可拖动的div中托管每个页面(view / viewmodel)并同时打开多个页面。用户将从菜单中选择它们。

我查看了viewPorts,但看不出他们将如何帮助解决这个问题。

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

是的,有办法做到这一点。

你说的是页面,但基本上它们都是组件。每个组件都有一个HTML(视图)和JS(视图模型)文件。它们可以作为自定义元素包含在内。

因此,如果您想在一个页面上有多个可能的组件,那么您需要做的就是创建一个具有这些视图占位符的组件。

可能你会想要这样的东西:

running Gist example

<template>
  <require from="./page1"></require>
  <require from="./page2"></require>

  <page1></page1>

  <hr>

  <page2></page2>
</template>

如果您需要同一页面的多个实例,可以为要显示的所有元素创建循环,并在元素上放置repeat.for

HTML:

<template>
  <require from="./page1"></require>
  <require from="./page2"></require>

  <page1 repeat.for="i of page1instances"></page1>

  <hr>

  <page2 repeat.for="i of page2instances"></page2>
</template>

JS:

export class App {
  const page1Instances = 4;
}

使它们拖放和放置就像其他所有元素一样,有很多解决方案可以找到它。只需将<page1><page2>拖动即可。