Angularjs - 动态填充$ routeProvider

时间:2014-03-13 19:31:28

标签: javascript angularjs routes route-provider

我需要创建动态路由,我无法找到任何解释我如何做的事情。

如果我的路线提供者看起来像这样:

app.config(function($routeProvider) {
$routeProvider
    .when('/', {
        templateUrl:'/index.php',
    controller: 'mainCtrl'
    })
    .when('/search/:tags', {
        templateUrl:'/search/index.html',
        controller: 'searchCtrl'
    })
    .when('/path/one/', {
        templateUrl:'/test/two/partial.html',
        controller: 'testTwoCtrl'
    })
    .when('/path/one/:valueone', {
        templateUrl:'/mickey/mouse/partial.html',
        controller: 'MickeyMouseCtrl'
    })
    .otherwise({
        redirectTo: '/404.html'
    })
});

如何从包含所需信息的json对象动态生成它,如下所示:

[
{
    "when": "/",
    "templateUrl": "/index.php",
    "controller": "mainCtrl"
},
{
    "when": "/search/:tags",
    "templateUrl": "/search/index.html",
    "controller": "searchCtrl"
},
{
    "when": "/path/one/",
    "templateUrl": "/test/two/partial.html",
    "controller": "testTwoCtrl"
},
{
    "when": "/path/one/:valueone",
    "templateUrl": "/mickey/mouse/partial.html",
    "controller": "MickeyMouseCtrl"
}
]

我还需要在XHR请求中加载此信息。我想我正在寻找这种调整的东西..这是可行的,可行的,可行的吗?

app.config(function($routeProvider, $http) {

$http.get('routingdata.json').success(function(data) {
    for ( key in data ) {
        $routeProvider.when( data[key].when, {
            templateUrl:data[key].templateUrl,
            controller: data[key].controller
        })
    }
    $routeProvider.otherwise({
        redirectTo: '/'
    })    
   }
});

0 个答案:

没有答案