我知道Aurelia是SPA的框架,但我需要在浏览器中同时打开多个页面。
我想在一个可拖动的div中托管每个页面(view / viewmodel)并同时打开多个页面。用户将从菜单中选择它们。
我查看了viewPorts,但看不出他们将如何帮助解决这个问题。
还有其他办法吗?
答案 0 :(得分:1)
是的,有办法做到这一点。
你说的是页面,但基本上它们都是组件。每个组件都有一个HTML(视图)和JS(视图模型)文件。它们可以作为自定义元素包含在内。
因此,如果您想在一个页面上有多个可能的组件,那么您需要做的就是创建一个具有这些视图占位符的组件。
可能你会想要这样的东西:
<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>
拖动即可。