2017-07-15 11 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を与えるもう一つのコントローラアプリケーションがカテゴリページに来る前に、サーバーの応答からategoryの名前。

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のようになります。私はユーザータイプのサービスを調べるときにカテゴリの配列を取得し、前に書いたように、サブカテゴリサービスで渡されるカテゴリ名の1つを使用したいと思います。アプリケーションの流れはUser-> Category->カテゴリに応じて、サブカテゴリを表示します。どんな助けもありがとう。ありがとう!!

+0

これは、単一ページのアプリケーションことになっていますか? yesの場合、 '$ location.path()'はあなたのページをリロードさせます。また、何が問題なのか理解できません。あなたのコードは動作していませんか?はいの場合、エラーが発生していますか? –

+0

エンドURLは何ですか?例えば。猫=果物、野菜、fruit_subcats =バナナ、リンゴ、vegetables_subcats =トマト、ジャガイモ... 1. end subcat url /果物/バナナ、/野菜/トマト。 1. option/banana、/ tomato ...つまり、urlのルートか2番目のパラメータとしてsubcatを起動したいのですか? –

+0

2番目のパラメータではなく、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); 

      }}}]) 
関連する問題