Javascript 动态角度路由和外部内容源

Javascript 动态角度路由和外部内容源,javascript,angular,Javascript,Angular,我有一个关于如何最好地解决问题的模式或设计问题;我会简化我的想法,这样我就不会对这个问题产生怀疑: 我有一个简单的两个组件,两个垂直柱角度应用程序,如下所示: <div class="container-fluid"> <div class="row"> <div class="col-3"> <app-sidemenu></app-sidemenu> </div>

我有一个关于如何最好地解决问题的模式或设计问题;我会简化我的想法,这样我就不会对这个问题产生怀疑:

我有一个简单的两个组件,两个垂直柱角度应用程序,如下所示:

<div class="container-fluid">
  <div class="row">
      <div class="col-3">
            <app-sidemenu></app-sidemenu>
      </div>
      <div class="col-9">
            <app-content></app-content>
            <router-outlet></router-outlet>
      </div>
    <div class="col"></div>
  </div>
</div>
以下是我需要的帮助:

情景:

我有10个外部托管在GitHub上的.html文件。我需要将每个菜单链接路由到每个.html文件,并在单击每个菜单项时在内容组件中显示每个文件的内容

更简单地描述:每个菜单项都将内容从外部托管的.html文件加载到内容组件中

我读过很多不同的选项,它们只是部分地描述了我想做的事情,所以我真的想知道这是否可行(当我描述它时似乎很容易),如果是的话,我从哪里开始


我不是在寻找一个快速的代码解决方案,而是一个正确的方向,这样我就可以自己解决这个问题,如果有更好的方法,我不会浪费时间。

如果我理解正确,您需要通过角度路由重定向外部网页/应用程序。 如果这是您的问题,则没有“正确”的解决方案。这是因为角度中的路由不能替换为外部链接。您可以创建这样一个调用外部Url的方法

但这不是你的解决方案

你们能做的是一个奇怪的解决方案,你们需要为N个外部链接路由N个组件。然后在每个OnInit()方法中使用以下内容:

window.location.replace("WebPage_Url")
不要使用HREF因为在chrome中不起作用

每条路线都应该是这样的:

    const appRoutes: Routes = [
  {
    path: '',
    component: HomeComponent
  },
  {
    path: 'Link1',
    component: Link1Component
  },
  {
    path: 'Link2',
    component: Link2Component
  }
现在如果您转到localhost://xxxx/link1这将重定向到您的网页


希望这会有用。

你能举个例子说明路线是什么样的吗?这是我遇到的问题。理想情况下,每个路径都会链接到一个外部文件,如:path:github.com/username/file.html,并将其加载到:component:ContentComponentI我不确定是否使用path,因为它很容易混淆。最好使用GET参数和URL编码URL。然后可以检索此url并获取相应的模板。你的url看起来是这样的:
youapp.com/pages?url=https%3A%2F%2Fexample.com%2fome%2Ffile.html
如果我理解正确,路由无法链接到url。这包括内部文件还是本地文件?只是好奇GitHub外部存储需求是否导致了限制,或者Angular是否不是正确的选择(即路径只是链接到组件的名称)。如果后者是正确的,欢迎对其他框架提出任何建议。如果可能的话,我试图保持无服务器。是的,你不能路由URL。关于本地文件,它取决于,例如,如果你想使用静态Json(或视频、音乐Js文件),你可以创建并放入Assets文件夹,然后你可以在任何时候使用正确的路径,我不明白你指的是什么文件。我认为这是对角度的限制,因为此路由是“为给定URL提供特定组件视图的可选服务”。检查此项了解更多信息>检查此项了解更多信息:
    const appRoutes: Routes = [
  {
    path: '',
    component: HomeComponent
  },
  {
    path: 'Link1',
    component: Link1Component
  },
  {
    path: 'Link2',
    component: Link2Component
  }