Angular 6 将参数传递到 URL

问题描述 投票:0回答:4

所以我有一个角度应用程序,当前有一条诸如“urlname/stockdata”的路线。我希望能够将股票代码传递到该 url 中,例如“urlname/stockdata/AAPL”。我的应用程序正在使用该符号调用第三方 API。你们对我如何做到这一点有什么建议吗?任何帮助表示赞赏。谢谢

javascript angular routes
4个回答
18
投票

您可以使用如下参数声明路由:

export const routes: Routes = [
  { path: 'urlname/stockdata/:id', component: MyComp}
];

在模板中创建链接:

<a [routerLink]="['/urlname/stockdata', id]">MyLink</a>

或从

.ts
导航:

 this.router.navigate(['/urlname/stockdata', id]);

然后你可以用以下方式阅读:

constructor(private route: ActivatedRoute) {}

this.route.params.subscribe(params => {
  this.id = params['id'];
});

1
投票

TS 文件

const routes: Routes = [{
  path: '',
  children: [{
    path: 'plans/:id',
    component: PlanListComponent,
    canActivateChild: [AuthGuard]
  }]
}];

HTML

<a class="dropdown-item" (click)="viewDetails(product.id)">View Detail</a>

TS

 viewDetails (productId) {
        this.router.navigate([ BASE_URL +"/plans/" + productId]);
    }

0
投票

首先,考虑您必须在 URL 中发送 4 个参数,例如。 区域MPJC .
为此,请转到文件 样本.组件.ts


 functionName() {
 let param={
      zone:this.selectZone,
      state:this.selectState,
      jc:this.stateJC,
      mp:this.MPdata
    }

 this.availservice.AvailReport(param)
      .subscribe((json) => {
      this.ArrayResponse= json;
      } );
}

现在来归档 样本.service.ts

 AvailReport(param) {  
let UrlTemp= `http://11.111.11.11:3838/getdata/AVAILABILITY_${param.zone}_${param.state}_${param.jc}_${param.mp}.JSON?callback=true`;
    return this.http.get(UrlTemp);
  }

您肯定会得到如下回复:

Request URL: http://10.141.55.49:3838/getdata/AVAILABILITY_ZoneName_StateName_MPName_JCName.JSON?callback=true

使用此方法,您可以在 URL 中传递任意数量的参数并要求您的后端团队接收参数。


0
投票

我已经使用了这个解决方案,它可以在开发模式下工作,但是,如果我使用 nginx,我会出现错误 500,为什么?

© www.soinside.com 2019 - 2024. All rights reserved.