2016-06-27 58 views
0

我不想为每个组件注册Router_Directives。使用角度路由器rc3在全局注册路由器指令

我想这样做,全球像我一样以前:

import { RouterConfig ,Router, ActivatedRoute, ROUTE_PROVIDERS} from '@angular/router'; 
bootstrap(AppComponent, [APP_ROUTER_PROVIDERS, HTTP_PROVIDERS, ROUTE_PROVIDERS ]); 

但ROUTE_PROVIDERS不存在/出口路由器模块。

我该怎么用RC3路由器做到这一点?

+0

我假设你正在尝试使用路由器3.0.0-alpha7? - 在这种情况下,我不认为存在ROUTE_PROVIDERS,但是有一个provideRouter函数是为了取得它的位置......当然,它仍然在alpha –

+0

是的,请查看我们的选项[here](https:/ /angular.io/docs/ts/latest/api/#!?apiFilter=router#stq=router&stp=1),并比较路由器和路由器deporaded –

+0

是,因为我写在标签router3! https://angular.io/docs/js/latest/api/router/index/provideRouter-function.html可以工作,我稍后再尝试。 – Elisabeth

回答

1

我们需要的是一个multi-provider

下面是我为我创造了我想让全局可用一些管道:

import {provide, PLATFORM_PIPES} from '@angular/core'; 
... 
bootstrap(MegaDashboardAppComponent, [ 
    HTTP_PROVIDERS, 
    APP_ROUTER_PROVIDERS, 
    provide(PLATFORM_PIPES, 
    { 
     useValue: [ 
     Truthy, 
     PrettifiedCamel, 
     KeysPipe, 
     IfDate 
     ], 
     multi: true 
    }) // provide pipes globally 
]); 

我想你可以为任何指示做同样的那你需要全球可用,以及实现这样的:

import {provide, PLATFORM_PIPES, PLATFORM_DIRECTIVES} from '@angular/core'; 
import {ROUTER_DIRECTIVES} from '@angular/router'; 
... 
bootstrap(Example, [ 
    APP_ROUTER_PROVIDERS, 
    ... 
    provide(PLATFORM_DIRECTIVES, 
    { 
     useValue: [ROUTER_DIRECTIVES], 
     multi: true 
    }) 
]); 

只是测试,奇妙的作品,尤其是与角料2个指令为w埃尔:)

+0

终于有效了!谢谢Jarod。 – Elisabeth