向Angular 8中动态创建的管线注入数据

向Angular 8中动态创建的管线注入数据,angular,angular-router,Angular,Angular Router,我的Angular应用程序中有一个服务,它通过GET请求返回许多GUI。然后使用这些GUID使用以下方法动态生成大量不同的路由(其中每个许可证对象将GUID保存在serialNumber变量中: populateRoutes(licenses: License[]) { for (let license of licenses) { let route = {path: license.serialNumber, component: LicensePageComponent

我的Angular应用程序中有一个服务,它通过GET请求返回许多GUI。然后使用这些GUID使用以下方法动态生成大量不同的路由(其中每个
许可证
对象将GUID保存在
serialNumber
变量中:

populateRoutes(licenses: License[]) {
    for (let license of licenses) {
      let route = {path: license.serialNumber, component: LicensePageComponent};
      this.router.config.push(route);
      this.links.push({text: license.serialNumber, path: license.serialNumber});
    }
  }
通过执行此操作,我的应用程序将使用GUID作为页面链接生成一个新网页,每个许可证对象一个。然后,我将在下面的单独模板中生成指向这些页面的可单击链接

<div class="row">
  <div class="col-6">
    <a routerLink="{{this.license.serialNumber}}">{{this.license.serialNumber}}</a>
  </div>
  <div class="col-2">
    <span>{{this.license.connected}}</span>
  </div>
  <div class="col-2">
    <span>{{this.license.neverConnected}}</span>
  </div>
  <div class="col-2">
    <span>{{this.license.neverConnected}}</span>
  </div>
</div>

{{this.license.serialNumber}
{{this.license.connected}
{{this.license.neverConnected}
{{this.license.neverConnected}
但是,许可证对象包含我希望在动态创建的页面中显示的更多信息。由于这些页面是动态的,因此我无法使用
@Input()
将许可证对象传递给动态创建的组件

我真正需要做的是能够访问用于从动态组件生成网页的GUID,如果我可以访问GUID,我可以使用另一个GET请求从API检索许可证数据

但是,我不确定如何从动态组件内部访问GUID。使用queryParams指令是一种方法,但这意味着动态页面的链接将导致类似于
localhost:4200/5c7cbf1b-e7fc-49c4-b47a-a39f5cc83ed3?GUID=5c7cbf1b-e7fc-49c4-b47a-a39f5cc83ed3的外观由于GUID重复,因此外观很难看


从动态组件内部访问GUID的最佳做法是什么?

您可以使用的
data?:data
属性将静态数据发送到路由

let route = {path: license.serialNumber, component: LicensePageComponent, data: {field1: license.someField /** etc.. */} };

然后,您可以使用

data:Observable
属性访问传递的数据这正是我刚刚设法为自己找到的,干杯!