Angular路由傳遞參數(shù)的3種方式

路由時(shí)傳遞數(shù)據(jù)的方式:

  1. 在查詢參數(shù)中傳遞



//傳遞數(shù)據(jù)
...
<a [routerLink]="['/stock']" [queryParams]="{id: 1}">股票詳情</a>
// http://localhost:4200/stock?id=1



//接受參數(shù)
...
import { ActivatedRoute } from '@amgular/router';

export class StockComponent implements OnInit {

    private stockId: number;    
    
    constructor(private routeInfo: ActivatedRoute)
    
    ngOnInit() {
        this.stockId = this.routeInfo.snapshot.queryParams['id'];
    }
    
}


  1. 在路由路徑中傳遞


//修改配置
const routes: Routes = [
  {path: '', redirectTo: '/index', pathMatch: 'full'},
  {path: 'index', component: IndexComponent},
  {path: 'stock/:id', component: StocksComponent },
  {path: '**', component: ErrorPageComponent }
];


//傳遞數(shù)據(jù)
...
<a [routerLink]="['/stock', 1]">股票詳情</a>
// http://localhost:4200/stock/1



//接受參數(shù)
...
import { ActivatedRoute } from '@amgular/router';

export class StockComponent implements OnInit {

    private stockId: number;    
    
    constructor(private routeInfo: ActivatedRoute)
    
    ngOnInit() {
        this.stockId = this.routeInfo.snapshot.params['id'];
    }
    
}


使用snapshot快照的方式傳遞數(shù)據(jù),因?yàn)槌跏蓟淮?,路由到自身不能傳遞參數(shù),需要使用訂閱模式。


this.routeInfo.params.subscribe((params: Params) => this.stockId = params['id']);


  1. 在路由配置中傳遞


//路由配置配置
const routes: Routes = [
  {path: '', redirectTo: '/index', pathMatch: 'full'},
  {path: 'index', component: IndexComponent, data: {title: 'Index Page'}},
  {path: 'stock/:id', component: StocksComponent, data: {title: 'Stock Page'}},
  {path: '**', component: ErrorPageComponent, data: {title: 'Stock Page'}}
];


//接受參數(shù)
this.title = this.routeInfo.snapshot.date[0]['title'];


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容