Javascript angularjs中基于服务器响应的动态路由

Javascript angularjs中基于服务器响应的动态路由,javascript,angularjs,Javascript,Angularjs,因此,我试图以一种方式配置我的应用程序,使其能够根据服务器响应动态路由。我的代码如下 HTML <div ng-controller="CategoriesController" class="column"> <div layout-align="center center" ng-repeat="category in categories" > <div class="category-button-text-english">

因此,我试图以一种方式配置我的应用程序,使其能够根据服务器响应动态路由。我的代码如下

HTML

<div ng-controller="CategoriesController" class="column">
    <div  layout-align="center center" ng-repeat="category in categories" >

        <div class="category-button-text-english">{{category}}</div>
        <md-button ng-click="submit()" class="category-button"  aria-label="{{category}}">
            <img ng-src="assets/images/categories/{{category}}.png"
                 alt="{{category}}">
        </md-button>
        <div class="category-button-text-translation">
            {{category|uppercase| translate}}
        </div>
服务

 .factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
          var url2 = 'localhost:5000/api/subcategories/';
        return {getsubCategories: function () {
                return $http.get(url2);

            }}}])
另一个控制器,在应用程序进入类别页面之前,根据服务器的响应提供类别名称

controller("userTypeController", function ($rootScope,$scope, $location, CategoryService) {
$scope.getCat=function(){
    CategoryService.getCategories() .then(function (response) 
        {
          $rootScope.categories=response.data.data.categories;

                                       });
    $location.path('/category');
};
所以我想要的是,在从服务器获取类别名称之后,它根据在类别页面上单击的按钮调用正确的路由。例如,根据单击的按钮,通话应该是这样的
localhost:5000/api/subcategories/categories\u NAME
。当我通过用户类型服务时,我会得到一个类别数组,我想使用其中一个类别名称在子类别服务中传递,就像我前面写的那样。应用程序的流程类似于用户->类别->根据类别显示子类别。任何帮助都将不胜感激。谢谢

像这样使用

路线

服务

.factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
          var url2 = 'localhost:5000/api/subcategories/'+httpParamSerializerJQLike.category_name;
        return {getsubCategories: function () {
                return $http.get(url2);

            }}}])

这应该是一个单页应用程序吗?如果是,则
$location.path()
将导致页面重新加载。还有,我不明白是什么问题?您的代码是否不工作,如果是,那么您是否有任何错误?您想要的最终url是什么?猫=水果,蔬菜,水果=香蕉,苹果,蔬菜=西红柿,土豆。。。1.结束子目录url/水果/香蕉/蔬菜/番茄。1.选项/香蕉,/番茄。。。也就是说,您想从url的根目录启动子目录,还是作为第二个参数?我想从url的根目录启动子目录,而不是作为第二个参数@AyushBahuguna我该怎么做才能不让它每次都重新加载?@BleatedAXE查找
$routeParams
如果您使用本机angular1.x路由模块,或者
$stateParams
如果您使用angular ui路由器。这是您需要更改的参数,而不是路径名。
.when("/category/:category_name", {
    ....
    ....
  })
.factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
          var url2 = 'localhost:5000/api/subcategories/'+httpParamSerializerJQLike.category_name;
        return {getsubCategories: function () {
                return $http.get(url2);

            }}}])