2017-04-26 68 views
0

嗨,我正在开发一个Angularjs应用程序。我有三个级联下拉。基于下拉列表中选定的值,我将绑定div与从api(div with ng-repeat)接收的数据绑定。我已经实施了分页。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是我从不同场景调用的函数。例如,第一 下拉

$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-改变事件在寻呼我有以下功能。这是执行时,我点击页码例如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 
} 
相关问题