詳解Angular5路由傳值方式及其相關問題
目前Angular已經(jīng)升級到了穩(wěn)定版本Angular5,這次升級更小更快以及更穩(wěn)定!路由可以說是Angular甚至是單頁應用的核心部分了吧!在angularjs中的路由最大的缺點就是無法嵌套路由,在Angular中解決了這個問題!在Angular中路由不僅僅是頁面跳轉(zhuǎn),其中還有一項叫英雄列表跳轉(zhuǎn)英雄詳情!在諸多的列表,不可能給每個英雄做一個詳情頁,于是乎路由參數(shù)起到作用了!通過路由傳入?yún)?shù)識別那個英雄的詳情!
現(xiàn)在對于路由傳值進行詳解,首先一種方式是官網(wǎng)的導航到詳情的單值id傳入,另一種是多數(shù)據(jù)傳入!
1.單值傳入
['/hero', hero.id]
<ul class="items">
<li *ngFor="let hero of heroes$ | async"
[class.selected]="hero.id === selectedId">
<a [routerLink]="['/hero', hero.id]">
<span class="badge">{{ hero.id }}</span>{{ hero.name }}
</a>
</li>
</ul>
以上是官網(wǎng)示例
下面我們用我自己的示例介紹一下:
首先是列表頁,以及跳轉(zhuǎn)方式
然后是配置路由:(單值傳入的方式需要在詳情組件路由配置)
{
path:'listDetail/:id',
component:ListDetailComponent
},
傳入后就是取到參數(shù),在詳情組件的ngOnInit生命周期獲取參數(shù)
ngOnInit() {
this.route.params
.subscribe((params: Params) => {
this.id = params['id'];
console.log(this.id);
console.log('傳值');
console.log(params)
})
}
2.我們在平時的復雜的業(yè)務場景我們需要傳多個數(shù)據(jù),這時候該怎么辦呢?這時候我們就用到了queryParams
這里數(shù)據(jù)我是直接拿上去的,同樣你可以組織好數(shù)據(jù),一個參數(shù)放上去,簡化html結(jié)構(gòu),現(xiàn)在有個問題,這樣多值傳入路由參數(shù)怎么配置呢?/:id/:id???我這個參數(shù)多少也不是固定的咋辦?其實這種方式不需要配置路由!你只需要傳入和取到數(shù)據(jù)就可以了!
ngOnInit() {
this.route.queryParams
.subscribe((params: Params) => {
this.id = params['id'];
this.state = params['state'];
console.log(params)
console.log(this.id);
console.log(this.state);
})
}
以上就是Angular路由傳值兩種方式!希望對大家有幫助!也希望大家多多支持腳本之家。
相關文章
AngularJS ng-bind 指令簡單實現(xiàn)
本文主要介紹AngularJS ng-bind 指令,在這里對ng-bind 指令做了詳細資料整理并講解,提供了實例代碼以便大家參考,有需要的小伙伴可以參考下2016-07-07
angularjs使用directive實現(xiàn)分頁組件的示例
本篇文章主要介紹了angularjs使用directive實現(xiàn)分頁組件的示例,具有一定的參考價值,有興趣的可以了解一下。2017-02-02
AngularJS 中的Promise --- $q服務詳解
這篇文章主要介紹了AngularJS 中的Promise --- $q服務詳解方法的相關資料,需要的朋友可以參考下2016-09-09
spring+angular實現(xiàn)導出excel的實現(xiàn)代碼
這篇文章主要介紹了spring+angular實現(xiàn)導出excel的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
詳解webpack+angular2開發(fā)環(huán)境搭建
這篇文章主要介紹了詳解webpack+angular2開發(fā)環(huán)境搭建,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06

