国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解Angular5路由傳值方式及其相關問題

2019-11-19 13:56:18
字體:
來源:轉載
供稿:網友

目前Angular已經升級到了穩定版本Angular5,這次升級更小更快以及更穩定!路由可以說是Angular甚至是單頁應用的核心部分了吧!在angularjs中的路由最大的缺點就是無法嵌套路由,在Angular中解決了這個問題!在Angular中路由不僅僅是頁面跳轉,其中還有一項叫英雄列表跳轉英雄詳情!在諸多的列表,不可能給每個英雄做一個詳情頁,于是乎路由參數起到作用了!通過路由傳入參數識別那個英雄的詳情!

現在對于路由傳值進行詳解,首先一種方式是官網的導航到詳情的單值id傳入,另一種是多數據傳入!

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>

以上是官網示例

下面我們用我自己的示例介紹一下:

首先是列表頁,以及跳轉方式

復制代碼 代碼如下:
<p *ngFor="let item of items" [routerLink]="['/listDetail',item.id]">{{item.name}}</p>

然后是配置路由:(單值傳入的方式需要在詳情組件路由配置)

{  path:'listDetail/:id',  component:ListDetailComponent },

傳入后就是取到參數,在詳情組件的ngOnInit生命周期獲取參數

 ngOnInit() {  this.route.params   .subscribe((params: Params) => {    this.id = params['id'];    console.log(this.id);    console.log('傳值');    console.log(params)   }) }

2.我們在平時的復雜的業務場景我們需要傳多個數據,這時候該怎么辦呢?這時候我們就用到了queryParams

復制代碼 代碼如下:
<p *ngFor="let data of datas" [routerLink]="['/listDetails']" [queryParams]="{id:data.id,state:data.state}">{{data.name}}</p>

這里數據我是直接拿上去的,同樣你可以組織好數據,一個參數放上去,簡化html結構,現在有個問題,這樣多值傳入路由參數怎么配置呢?/:id/:id???我這個參數多少也不是固定的咋辦?其實這種方式不需要配置路由!你只需要傳入和取到數據就可以了!

 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路由傳值兩種方式!希望對大家有幫助!也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英山县| 崇信县| 苍溪县| 吴江市| 玉田县| 鄂伦春自治旗| 吉木萨尔县| 静宁县| 天全县| 彭山县| 刚察县| 大化| 长宁区| 营口市| 石林| 松原市| 泰顺县| 资中县| 蒙城县| 当阳市| 靖江市| 武威市| 上林县| 扎赉特旗| 额济纳旗| 耒阳市| 涞源县| 安化县| 郧西县| 罗平县| 广河县| 澳门| 浦东新区| 恩平市| 格尔木市| 石屏县| 江北区| 平舆县| 广河县| 临汾市| 宿迁市|