2017-04-26 6 views
0

こんにちは私は1つのAngularjsアプリケーションを開発しています。私は3つのカスケードドロップダウンを持っています。ドロップダウンで選択された値に基づいて、私はapi(ng-repeatでdiv)から受け取ったデータでdivをバインディングしています。私はページングを実装しました。Angularjs関数でURLを保持する方法は?

ページの読み込み時に、最初のドロップダウンをバインドしています。

var arrMakes = new Array(); 
     $http.get(url + 'api' + '/Vehicle/' + 'GetVehicleMake').success(function (data) { 
      $.map(data.data, function (item) { 
       arrMakes.push(item); 
      }); 
      $scope.list = arrMakes; 
      var dynamicUrl = url + 'api' + '/Vehicle/' + 'Getcars/'; 
      //bind data to Div randomly. 
      getcadetails(dynamicUrl); 
     }).error(function (status) { 
     }); 
function getcadetails(baseurl) 
     { 
      var arrallcarDetails = new Array(); 
      $http.get(baseurl,{ params: $scope.pagingInfo }).success(function (data) { 
        $.map(data.data, function (item) { 
        arrallcarDetails.push(item); 
        }); 
        $scope.carDetails = arrallcarDetails; 
        $scope.pagingInfo.totalItems = data.totalcount; 
      }).error(function (status) { 
      }); 
     } 

getcadetailsは、さまざまなシナリオから呼び出す関数です。例えば、ページング、第1のドロップダウン

$scope.getModel = function (selectedMake) { 
var selectedMakeData = selectedMake.ID; 
      var arrModel = new Array(); 
      $http.get(url + 'api' + '/Vehicle/' + selectedMakeData + '/GetVehicleModel').success(function (data) { 
       $.map(data.data, function (item) { 
        arrModel.push(item); 
       }); 
       $scope.Modellist = arrModel; 
       var dynamicUrl = url + 'api' + '/Vehicle/' + 'Getcars/' + '?MakeID=' + selectedMakeData; 
       //bind data to Div randomly. 
       getcadetails(dynamicUrl); 
      }).error(function (status) { 
      }); 
} 

のNG変化イベントiは関数の下に持っています。例1,2などのページ番号をクリックすると実行されます

$scope.pageChanged = function (currentPage) { 
       $scope.pagingInfo.pageNumber = currentPage; 
       getcardetails(); 
      }; 

ここで私の問題が始まります。任意のページ番号をクリックすると、$ scope.pageChanged関数が実行されます。私はそれをサーバーに送るページ番号を得るでしょう。その後、私はgetcadetails(?)を呼び出します。今、getcadetailsのためのbaseurlを得る方法はありますか?これをより良い方法で実装できる方法はありますか?どんな助けもありがとう。ありがとうございました。

答えて

0

私はselectedMakeDataのバリエーションを定義し、URLを作成する関数を定義できると思います。毎回getcardetails()を呼び出す前に、dynamicUrlを計算する必要があります。

var selectedMakeData = 0; 

selection.addEventListener('change',() => { 
    selectedMakeData = newData; 
}); 

$scope.pageChanged = function (currentPage) { 
    var url = getUrl(); 

    $scope.pagingInfo.pageNumber = currentPage;   
    getcardetails(url); 
}; 

function getUrl() { 
    // return url baseed on selectedMakeData 
} 

コードは、この見えます

関連する問題