2016-08-14 1 views
2

Я пытаюсь динамически создавать маршруты из статического json-файла, который я читаю из запроса XHR, также я пытаюсь импортировать компонент, который также написан на тот же json-файл. Я пытаюсь выяснить, как мы можем использовать данные json в наших конфигурациях маршрутов.Как создавать маршруты и импортировать компоненты динамически из json-файла в angular2 rc5

Первый очевидный вызов, с которым я столкнулся, - это то, как я могу получить данные json и реализовать в нашем конфиге перед инициализацией углового приложения. Во-вторых, даже если мне удастся получить json-данные в нашу конфигурацию, как я могу объявить их в нашем файле module.js или, скорее, добавить в нашу декларацию.

Был бы рад, если кто-нибудь может помочь. Если требуется исходный код, пожалуйста, дайте мне знать.

+0

Я не могу думать о какой-либо уважительной причине вы хотите/должны это сделать ... –

+0

Ну, это мне нужно, а также, для моих СЦИ основанное приложение ng2. –

ответ

1

С NG2 RC5 intruduced NgModule это теперь возможно

здесь @NgModule конфигурации:

import { routing }  from './app.routing'; 
@NgModule({ 
    imports:  [ BrowserModule,HttpModule,JsonpModule, routing ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

Здесь компоненты загрузки, вы можете увидеть название компонентов из массива строк, которые могут быть считаны из файла Json из вашей базы данных или диска.

const routes: Routes= GetScreens(); 
export const routing = RouterModule.forRoot(routes); 

function GetScreens(){ 
    var results :Array<Object> = Array<Object>(); 
    let screens :Array<string> = ["page1","page2","page3"] 

    results.push({ path: '' ,redirectTo: 'welcome', pathMatch: 'full'}); 
    results.push({ path: 'welcome', loadChildren: 'app/screens/welcome.module'  }) 
    screens.map(screenId => results.push({path: screenId, loadChildren: 'app/screens/' + screenId + '.module' })) 
return results 
} 

Say здесь: {путь: 'Добро пожаловать', loadChildren: 'приложение/экраны/welcome.module'} мы загружаем компонент "прием" из приложения файл/экраны/welcome.module.ts без импорта { }.

Pls проверить полный код рассказ/подробности здесь: http://plnkr.co/edit/nm5m7N?p=preview

+0

Ваш пример plnkr не работает должным образом –

+0

Да, он работает, обновите его, если это необходимо –

Смежные вопросы