繁体   English   中英

嵌套Aurelia应用程序

[英]Nested Aurelia applications

根据Aurelia的创建者Rob Eisenberg的说法,应该可以在彼此内部嵌套aurelia应用程序

由于他在上面的链接中提到的示例不再公开,因此如果这里有人可以进一步阐述,甚至链接或编写一个有关如何实现这种嵌套的小示例 ,这将非常有帮助。

我希望使用Aurelia创建的主要应用程序和界面将由Windows XP Desktop样式的外壳组成,其中可以从开始菜单打开嵌套的Aurelia应用程序,并在主要应用程序内的嵌入式窗口中打开“ Windows桌面区域”-类似于Windows或文件资源管理器,可以在常规Windows XP OS中但在SPA中打开。

为了使它真正可扩展,我宁愿保留将嵌套的aurelia应用程序放置在主应用程序根文件夹之外的文件夹中的可能性,而是使用磁盘上的文件/文件夹路径从主应用程序链接到它们。

因此,为了使其“简单”,请想象这将是主要应用程序 (Windows Shell)-单击该按钮将打开一个窗口,该窗口可以最小化,调整大小或移动。 在该窗口中,将打开另一个aurelia应用程序。 最后,您希望能够将某些状态从主应用程序转移到嵌套应用程序,例如。 语言或数据库。

并且如果可能的话,最好是可以从主应用程序根文件夹的外部定位并引用嵌套的应用程序。

这是一个示例: https : //gist.run?id=7cda93aa0a225805ddf6

app.html

<template>
  <require from="./child-app"></require>

  <child-app main.bind="main1"></child-app>
  <child-app main.bind="main2"></child-app>
</template>

app.js

export class App {
  main1 = './one/app';
  main2 = './two/app';
}

child-app.js

import {
  Aurelia,
  noView,
  bindable,
  inject,
  Container
} from 'aurelia-framework';
import {Loader} from 'aurelia-loader';

@noView()
@inject(Loader, Element)
export class ChildApp {
  @bindable main;

  constructor(loader, element) {
    this.host = element;
    this.app = new Aurelia(this.loader, new Container());
    this.app.use.standardConfiguration();
  }

  mainChanged() {
    this.app.start().then(a => a.setRoot(this.main, this.host));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM