我对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')));
}
答案 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}});
};