typescript - Hur man använder RouteData i Angular2 Beta?
Jag stöter på problem när jag försöker använda RouteData i Angular2 Beta med TypeScript.
Jag injicerar det i konstruktören och importerar det korrekt
import {RouteConfig, Router, RouteData} from 'angular2/router';
export class App {
constructor(public router: Router, public data: RouteData) {
// router works - routedata not
}
}
Jag får Ingen leverantör för RouteData! (App -> RouteData).
Om jag inkluderar det i komponentannoteringen på det här sättet
@Component({
//..
providers: [RouteData]
})
Jag får detta fel: Kan inte lösa alla parametrar för RouteData(?). Se till att de alla har giltig typ eller annotationer.
Svar #1
RouteData tillhandahåller data till din barnkomponent via RouteConfig i din föräldrakomponent. Det bör inte finnas något behov av att använda det i din AppComponent.
För att använda det bör du tillhandahålla en RouteConfig i din AppComponent på detta sätt:
@RouteConfig([
{path: '/child', name: 'Child', component: ChildCmp, data: {item: 'hi there'}}
])
Din ChildComponent bör då injicera RouteData och kan hämta parametern som är inställd i routen på detta sätt:
export class ChildCmp {
constructor(@Inject(RouteData) private data:RouteData) {
this.data.get("item")
}
}
