在上一篇博文《Angular6.x---用戶列表與詳情展示》中,我們用ngFor=”let object of list”實現(xiàn)了用戶列表的展示,并通過(click)=”onSelect(obj)”語法實現(xiàn)了列表單擊時將單擊的對象傳到后臺的功能,最后為了防止初次加載對象為空導致的錯誤,我們又使用了ngIf語法來對要展示的詳情對象進行判空操作.但隨著后續(xù)模塊的增多,以及業(yè)務的交叉,我們發(fā)現(xiàn)這樣的代碼組織形式不利于復用,并且當我們修改用戶詳情的時候,可能還會導致列表出現(xiàn)錯誤,所以我們今天來說明一下在angular6.x中,如何將詳情與列表展示分開.
在前幾次分享中,因為代碼比較簡單,量也不多,所以我們使用命令行和vi進行編輯,從這次開始,我們使用vs code來編寫我們的代碼,此處略過vs code的安裝過程.
第一步,我們使用 ng generate component user-detail命令來生成一個詳情模塊.在vs code 中我們用Ctrl+Shift+P 打開命令窗口,選ng generate,之后選component,最后輸入我們組建的名稱user-detail
我們現(xiàn)在將我們用戶詳情信息轉(zhuǎn)移到user-detail目錄下的user-detail.component.html里(左圖),并且在user-detail.component.ts里聲明user的屬性(右圖),這里有點小小的改動,就是將原來的selectUser改為了userVO,以便于之后用戶詳情模塊的復用.并且因為再這個模塊里,所要展示的用戶是從外面?zhèn)鬟^來的,所以我們要給userVO這個屬性加上@Input()這個修飾符.
詳情模塊我們已經(jīng)準備好了,我們現(xiàn)在在列表頁引入我們的詳情模塊,并注入userVO對象.首先是引入app-user-detail標簽,并在提示中選userVO,最終效果如右圖所示,給組件注入對象,我們使用的是[對象名]=”對象”,這樣的語法格式,使用ide的最大好處就在于提示,其次就是糾錯.
和上次一樣,我們?nèi)匀灰宰詈蟮倪\行結(jié)果來結(jié)束我們本次的分享.
后續(xù),我們已經(jīng)考慮到了視圖的重用,那么對于數(shù)據(jù)接口也是可以重用的,并且往往我們的數(shù)據(jù)都不是寫死的,所以我們更應該將我們的數(shù)據(jù)接口給抽離出來,下一次,我們分享用戶數(shù)據(jù)接口的抽離.