これは、ルータのプロバイダの私の宣言です:AOTでコンパイルAngular4 - ルータモジュールプロバイダAOT
@NgModule({
imports: [RouterModule.forRoot(RoutesFactory.buildRoutes())],
exports: [RouterModule]
})
export class RouterModuleProvider { };
は、私はこのエラーを取得する:ここで
Error encountered resolving symbol values statically. Calling function 'getRoutes', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol RouterModuleProvider
はRoutesFactory.buildRoutes
の内容ですstatic buildRoutes() {
let returnRoutes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'login', component: ViewsModule.LoginViewComponent }
];
let appendRoutes = (items: MenuItem[], routes: Routes) => {
for (let item of items) {
let route: Route = {
path: item.Path, component: item.Component, children: []
};
if (item.Children != null)
appendRoutes(item.Children, route.children)
routes.push(route);
}
};
appendRoutes(RoutesFactory.getMenus(), returnRoutes);
return returnRoutes;
}
RoutesFactory.getMenus()は、オブジェクトの静的な内部配列を返します。 (バックエンドからロードされたものはありません)
この問題を解決する方法はありますか?
RoutesFactory.buildRoutes()には何がありますか? –
私は自分の質問を編集して問題の詳細を教えてくれました – gio
これは本当に奇妙な方法です。あなたがこれを行う理由は? – mast3rd3mon