2017-01-03 158 views
0

我正在將現有的數據庫(Wordpress)驅動的站點轉換爲Angular 2前端,保持後端原樣。我在路由階段,我想創建從數據庫中提取的JSON數據的路由。Angular 2動態路由

所以,我創建了一個服務從數據庫和一個單獨的路由模塊提取數據,註冊路線:

app-routing.module.ts 

import { NgModule } from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 
import { NavService } from './nav.service'; 

var navService: NavService; 
const routes: Routes = navService.getRoutes(); 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 

export class AppRouting{} 

nav.service.ts 

import { Injectable } from '@angular/core'; 
import { Http } from '@angular/http'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/toPromise'; 

@Injectable() 

export class SiteNavService{ 
    private _navUrl = 'pathtofile/?action=ajax_site_nav'; 
constructor(private _http: Http){} 
    getNav(){ 
     return this._http.get(this._navUrl) 
     .map(res => res.json()) 
     .toPromise(); 
    } 

} 

該服務是在應用程序註冊。 module.ts提供程序數組和導入數組中的路由模塊。我無法讓nav.service在路由模塊文件中工作。

回答

1

我剛纔一直在試圖動態路由添加到角2和發現,獲取當前的路線與

this.router.config

,然後改變它們與

應用更改this.router.resetConfig(newRoutes);

工作得很好 我在這裏有我的演示項目,這可能有助於團隊成員從json動態添加

+1

我可以看到你做了什麼,但這不是我想要達到的目標,我開始認爲這是不可能的。我想從數據庫中獲取路由器配置。因此,路徑及其各自的組件名稱與任何其他路由器屬性一起存儲在數據庫中。 –