Angular 4:单击带有参数的链接

时间:2018-07-09 10:56:17

标签: javascript angular

我对Angular 4还是很陌生。我有一个定位标记,单击该标记可以将我重定向到也需要传递参数的链接。我不确定我的方法是对还是错。但更重要的是,如何传递参数?我需要指导。

form.component.html:

<a (click)="myFunc()" href="" target="_blank">Go to mymodule</a><br />

form.component.ts

myFunc() {
  console.log("function called");
  window.open('../myURL/mypage.jsp?rurl=' + encodeURIComponent($('display').attr('href')));
  }

3 个答案:

答案 0 :(得分:0)

恕我直言,您应该使用Angular router这样导航:

myFunc() {
  console.log("function called");
  this.router.navigate(['../myURL'], {queryParams:{rurl: "someId"}})
 }

,不要忘了像这样导入Router

import {Router} from '@angular/router';

this.router = Router;              

注意::在URL使路由器上升一级之前,先使用../

答案 1 :(得分:0)

如果您要重定向到应用程序之外:

myFunc(){
   window.location.href = `full_url?rurl=${encodeURIComponent(display)})`;
}

如果您想导航到应用程序内的页面:

myFunc(){
this.router.navigate(['/navigation_route'], {queryParams:{returnRoute: 'any_path'});
}

答案 2 :(得分:0)

使用[routerLink]:

<a [routerLink]="['/route-name', id]" href="">Go to mymodule</a>

您也不应该忘记像这样更改路由配置:

[path: 'route-name/:id', component:ComponentName, pathMatch: 'full']

使用navigationByUrl:

import { Router } from '@angular/router';

constructor(private router: Router) { }

myFunc = function () {
        this.router.navigateByUrl('/route-name', {queryParams:{param-key: param-value}});
};