2017-07-15 28 views
-1

所以我試圖配置我的應用程序的方式,讓它動態路由取決於服務器的響應。我的代碼如下。取決於服務器的動態路由響應在angularjs

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> 

控制器

$scope.submit=function(){ 
    subCategoryService.getsubCategories().then(function (response) 
     { 
      console.log(response) 
      $rootScope.subcategories=response.data.data.subcategories; 
      $scope.category=response.data.data.category_name;   
             }) 
      $location.path('/subcategory');  

} 

服務

.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); 

      }}}]) 

另一個控制器,讓與c在應用程序進入類別頁面之前服務器響應中的名稱。

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/CATEGORY_NAME一樣。當我瀏覽用戶類型服務時,我得到了一系列類別,並且我希望使用其中一個類別名稱在子類別服務中傳遞,就像我之前寫的那樣。應用程序的流程與用戶 - >類別 - >根據類別一樣,顯示子類別。任何幫助,將不勝感激。謝謝 !!

+0

難道這應該是一個單頁的應用程序?如果是,那麼'$ location.path()'會導致你的頁面重新加載。另外,我不明白是什麼問題?你的代碼是否工作,如果是,那麼你是否得到任何錯誤? –

+0

你想要什麼結束地址?例如。貓=水果,蔬菜,fruit_subcats =香蕉,蘋果,vegetables_subcats =番茄,土豆... 1.結束subcat網址/水果/香蕉,/蔬菜/番茄。 1.選項/香蕉,/番茄......即你想從url的根目錄開始subcat或作爲第二個參數? –

+0

我想從url的根目錄開始subcat,而不是第二個參數。 @AyushBahuguna我能做些什麼來不讓它每次都重新加載? – BleachedAxe

回答

-1

使用這樣

路線

.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); 

      }}}])