我需要创建动态路由,我无法找到任何解释我如何做的事情。
如果我的路线提供者看起来像这样:
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: '/'
})
}
});