- Angular Router
- Victor Savkin
- 178字
- 2021-07-09 19:20:31
Resolving data
After the router has run the guards, it will resolve the data. To see how it works, let's tweak our configuration from above:
[ { path: ':folder', children: [ { path: '', component: ConversationsCmp, resolve: { conversations: ConversationsResolver } } ] } ]
Where ConversationsResolver
is defined as follows:
@Injectable() class ConversationsResolver implements Resolve<any> { constructor(private repo: ConversationsRepo, private currentUser: User) {} resolve(route: ActivatedRouteSnapshot, state: RouteStateSnapshot): Promise<Conversation[]> { return this.repo.fetchAll(route.params['folder'], this.currentUser); } }
Finally, we need to register ConversationsResolver
when bootstrapping our application:
@NgModule({ //... providers: [ConversationsResolver], bootstrap: [MailAppCmp] }) class MailModule { } platformBrowserDynamic().bootstrapModule(MailModule);
Now when navigating to /inbox
, the router will create a router state, with an activated route for the conversations component. That route will have the folder
parameter set to inbox
. Using this parameter with the current user, we can fetch all the inbox conversations for that user.
We can access the resolved data by injecting the activated route object into the conversations component:
@Component({ template: ` <conversation *ngFor="let c of conversations | async"></conversation> ` }) class ConversationsCmp { conversations: Observable<Conversation[]>; constructor(route: ActivatedRoute) { this.conversations = route.data.pluck('conversations'); } }
推薦閱讀
- Linux C/C++服務器開發實踐
- 零基礎學MQL:基于EA的自動化交易編程
- Python:Master the Art of Design Patterns
- The DevOps 2.5 Toolkit
- INSTANT Sinatra Starter
- 新一代SDN:VMware NSX 網絡原理與實踐
- C#面向對象程序設計(第2版)
- Application Development with Parse using iOS SDK
- Java程序設計入門(第2版)
- Building Web and Mobile ArcGIS Server Applications with JavaScript(Second Edition)
- Azure for Architects
- TensorFlow.NET實戰
- Flutter for Beginners
- ServiceDesk Plus 8.x Essentials
- Python大數據與機器學習實戰