2016-06-27 98 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