Javascript 使用AngularJS动态更改路由
我的项目中有很多JSON模型,我需要根据用户的操作显示不同的模型 以下是角路由器代码:Javascript 使用AngularJS动态更改路由,javascript,angularjs,json,angular-ui-router,Javascript,Angularjs,Json,Angular Ui Router,我的项目中有很多JSON模型,我需要根据用户的操作显示不同的模型 以下是角路由器代码: app.config(['$routeProvider', function($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeCtrl' }).when('/doc/:section, {
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeCtrl'
}).when('/doc/:section, {
templateUrl: 'views/doc.html',
controller: 'DocCtrl'
})
.otherwise({
redirectTo: '/'
});
}]);
下面是DocCtrl.js文件:
app.controller('DocCtrl', ['$scope', '$http', 'JSONModelsService',
function ($scope, $http, JSONModelsService) {
var formData = {};
$scope.group = {};
$scope.sections = [];
JSONModelsService.get([section])
.then(function (response) {
console.log(response);
$scope.group = response.data.groups[0];
$scope.sections = $scope.group.sections;
});
}]);
我基本上需要使
部分
动态化,以便在视图中显示不同的模型。然而,我不知道我该怎么做。我只有一个名为JSONModels
的文件夹,其中包含多个json文件。如果我正确理解您的问题,您的目标是用实际的节标识符替换代码的[section]
部分
当用户访问您的/doc/:section
路线时,例如/doc/my doc
,您可以通过将$routeParams
服务注入控制器来访问:section
部分
app.controller('DocCtrl'、['$scope'、'$http'、'$routeParams'、'jsonModelService',
函数($scope、$http、$routeParams、JSONModelService){
...
使用$routeParams
服务,您可以访问您的路线参数。因此,您可以通过读取$routeParams.section
来简单地访问:section
参数
(我认为你正在努力实现的)一个完整的例子:
app.controller('DocCtrl'、['$scope'、'$http'、'$routeParams'、'jsonModelService',
函数($scope、$http、$routeParams、JSONModelService){
var formData={};
$scope.group={};
$scope.sections=[];
JsonModelService.get([$routeParams.section])
.然后(功能(响应){
控制台日志(响应);
$scope.group=response.data.groups[0];
$scope.sections=$scope.group.sections;
});
}]);
如果您想了解更多信息,请查看角度教程的步骤7: