я видеть, что есть 2 способа передачи простых данных, таких как строки, к различным компонентам из путей маршрутизации:Angular2: в чем разница между разрешением и данными в маршрутах маршрутизации?
Первый способ:
маршрутизации сторона:
export const AppRoutes: Routes = [
...
{
path: '/one', component: OneComponent, resolve: { foo: 'foo' }
}
];
компонентов сторона:
@Component()
export class OneComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.foo = this.route.snapshot.data['foo'];
}
}
Второй способ:
Routing сторона:
const routes: RouterConfig = [
...
{
path: '/one', component: OneComponent, data : {some_data : 'some value'}
}
];
Компонентная сторона:
@Component()
export class OneComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.obs = this.route
.data
.subscribe(v => console.log(v));
}
ngOnDestroy() {
this.obs.unsubscribe();
}
}
Так что лучший способ передать значение компонентам? В чем разница между resolve
и data
?
увидеть это http://stackoverflow.com/a/36030932/5043867 и http://stackoverflow.com/a/36498736/5043867 –
Не 'RouteParams' осуждается? – smartmouse
Да, это было устарело в angular2 beta, я думаю –