Angular2 RC1, новый маршрутизатор и передача данных
Раньше для устаревшего маршрутизатора использовалось несколько компонентов, которые маршрутизировались на один и тот же компонент:
Некоторые компоненты
import {Component, Injector} from 'angular2/core';
import {IDataServiceSome} from './IDataServiceSome';
import {RouteData} from 'angular2/router';
@Component({
selector: 'Some',
templateUrl: './Some.html'
})
export class Some {
Model;
DataService: IDataServiceVendor;
constructor(routeData: RouteData, injector: Injector) {
var dataServiceToken = routeData.get('DataServiceToken');
this.DataService = injector.get(dataServiceToken);
this.Model = DataService.getSomeModel();
}
}
IDataServiceSome
export interface IDataServiceSome {
getSomeModel(): Object;
}
например Comp1, но есть Comp2, Comp3 и т.д ...
import {Component} from 'angular2/core';
import {RouteConfigs, Router, ROUTER_DIRECTIVES} from 'angular2/router';
import {DataServiceSome1} from './IDataServiceSome1';
@RouteConfigs([
{ path: '/Some', name: 'Some', component: Some, data: { DataServiceToken: DataServiceSome1 } }])
@Component({
directives: [ROUTER_DIRECTIVES],
providers: [DataServiceSome1],
selector: 'Comp1',
template:
`<div>
<router-outlet></router-outlet>
<h1>Comp1 routed to Some</h1>
</div>`
})
export class Comp1{
}
Как вы уже догадались, существует множество служб данных, которые реализуютIDataServiceSome
и многие компоненты, которые направляютSome
, Выбор того, какая служба данных используется, зависит от любого компонента, которыйSome
компонент с использованием токена данных, известныхinjector
, С выпуском rc1 и новым маршрутизаторомRouteData
устарела или удалена, но как реализован этот сценарий?