Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to inject data into Angular2 component created from a router?

I'm currently trying to build an Angular2 prototype (based on alpha44) of our Angular1 app (pretty complex one) and I'm trying to find the best model/data architecture when using routes and child routes.

In my example, from a child component created from a route, I want to access a property of the parent component (hosting the router-outlet).

But when you create a component from a router-outlet, you cannot use @Input and @Output anymore. So what is the best practice to inject some data/properties, except basic routeParams and static routeData?

How do you communicate with the parent component without too much coupling?

like image 885
Benoit Hediard Avatar asked Oct 23 '15 17:10

Benoit Hediard


2 Answers

You can use RouteData in order to pass data into routes. See here and here. I'm still missing the part of initialising this data obj from the component (see my question regarding)

like image 192
Yaniv Efraim Avatar answered Oct 24 '22 01:10

Yaniv Efraim


A shared service can be used with components added by the router. For details see https://angular.io/docs/ts/latest/cookbook/component-communication.html

data support also was added to the new router in RC.4. For details see How do I pass data in Angular 2 components while using Routing?

Angular 2 - equivalent to router resolve data for new router might also be related.

like image 40
Günter Zöchbauer Avatar answered Oct 24 '22 02:10

Günter Zöchbauer