如何使用JSON在AngularJS中动态创建路由?

时间:2016-06-20 18:44:33

标签: javascript angularjs json

我有一个JSON文件,其中包含页面的路由详细信息。如何为Angular视图创建动态路径

1 个答案:

答案 0 :(得分:0)

路由是通过$routeProvider的API定义的。提供程序仅在配置阶段可用。这意味着,在配置路由时,您无法执行http请求以从服务器获取数据,例如具有路由配置的JSON文件。

我可能会建议您将JSON文件转换为角度常量。

// route.constants.js
angular
    .module('app')
    .constant('ROUTES', [
         {url: '/some-url', templateUrl: '/path/to/template.html', controller: 'MyCtrl'},
         ...
    ]);

由于常量在配置阶段可用,您可以将ROUTE注入.config()。然后,您可以迭代ROUTES数组中的项目并配置$routeProvider

// route.config.js
angular
    .module('app')
    .config(['$routeProvider', 'ROUTES', function($routeProvider, ROUTES) {
        ROUTES.forEach(function(route) {
            $routeProvider.when(route.url, {
                 templateUrl: route.templateUrl,
                 controller: route.controller
            });
        });
    }])