Как я могу иметь внешний файл данных JSON с параметрами маршрута в Angular2?

Я новичок в Angular и, очевидно, в Angular 2. Я пытаюсь сохранить параметры маршрута во внешнем файле (например, в файле данных в формате JSON).

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

var routeParams = [
        { path: '/',             as: 'Home',          component: HomeComponent },
        { path: '/petlist',      as: 'Petlist',       component: PetlistComponent }
    ];

Затем используйте его для RouteConfig:

@RouteConfig(routeParams)

Но проблема в том, что ожидается, что компоненты будут классами, а их нет в файле .js.

Я также пытался использовать функцию, которая возвращает параметры маршрута JSON, но у меня такая же проблема с классами компонентов.

Система, с которой я работаю, уже имеет пользовательский интерфейс для создания веб-страниц, меню настройки и т. д. Я пытаюсь, чтобы эта система выводила шаблоны Bootstrap/Angular2. Поскольку пользователь может создавать свои собственные веб-страницы, я не знаю, как настроить маршруты, поскольку они могут меняться. Я думал, что использование файла данных JSON будет хорошим решением, но моему приложению, очевидно, нужно использовать данные маршрута из этого файла, а не жестко закодированные в приложении.

Я использую Angular 2.0.0-beta.0 и TypeScript.


person flyingMonkeys    schedule 24.12.2015    source источник
comment
Каковы причины/преимущества задачи, которую вы выполняете? на самом деле я думаю, что я не понимаю вас должным образом.   -  person Pardeep Jain    schedule 24.12.2015
comment
Пардип, смысл заключался в поддержке веб-сайта с CMS, которая экспортировала бы его веб-сайт в виде шаблонов и маршрутов. В итоге я сделал это с Angular 1, так как я мог очень легко загружать маршруты из файла JSON.   -  person flyingMonkeys    schedule 27.12.2016


Ответы (2)


Было бы здорово, если бы это было возможно в angular2, к сожалению, вы не найдете подобного примера в документы маршрутизации, вы должны вручную определить класс компонента для каждого маршрута. однако вы можете перебрать несколько маршрутов, использующих один и тот же компонент. (например: закладки)

person Murhaf Sousli    schedule 24.12.2015
comment
Мурхаф, вы знаете, возможно ли это в Angular v1? - person flyingMonkeys; 24.12.2015

Вы можете сделать это с помощью resetConfig(), получая данные с сервера, а затем читая фактический маршрутизатор данные с router.config в другом массиве и отправке новых маршрутов.

addRouteConfig(): void {
    const allRoute = this.router.config;
    allRoute.push(
        {
            path: 'someroute',
            component: someRouterComponent
        }
    );
    this.router.resetConfig(allRoute);
}
person Vitor Paixão    schedule 24.07.2018