通過路由url攜帶參數進行參數傳遞


一、url解析參數

在路由中寫入,同一個控制器,同一個頁面模板,可以寫多個路由,不同的路由對應相同的頁面,只是在這種傳參數的狀態下的特定頁面。

 .state("OrderRecord", {
      parent: "ServiceManage", url: "/order-record", templateUrl: "partials/service/transaction/order-record.html", controller: "OrderRecordCtrl" }) .state("OrderRecordQuery", { parent: "ServiceManage", // params: {"orderStatus":null}, url: "/order-record/orderStatus/?:orderStatus/:startTime/:endTime", templateUrl: "partials/service/transaction/order-record.html", controller: "OrderRecordCtrl" })

在模板里,再跳轉的ui-sref里的寫的是state的狀態,增加target,新開頁。

 <div class="link-num-mar">
                <a class="link-num" ng-class="{'un-click':main.newOrdersCnt===0}" ui-sref="OrderRecordQuery({orderStatus: main.orderQueryParam.orderStatus,startTime: main.orderQueryParam.startTime,endTime:main.orderQueryParam.endTime})" target="_blank">
                    {{main.newOrdersCnt}}
                </a>
            </div>

PS:1、ng-class是針對於后端返回的數值,如果數值為0,不可點擊的需求。不可點擊使用屬性pointer-event:none。

在目的地頁面控制器js里進行url解析,在初始化的時候,進行解析

 function init() {
        if($scope.url.indexOf('orderStatus')>=0){ $scope.orderParam.orderStatus = $scope.url.split('=')[1].split('&')[0]; $scope.orderParam.startTime = $scope.url.split('=')[2].split('&')[0]; $scope.orderParam.endTime = $scope.url.split('=')[3].split('&')[0]; $scope.startTime = $scope.url.split('=')[2].split('&')[0]; $scope.endTime = $scope.url.split('=')[3].split('&')[0]; // console.log($scope.orderParam.endTime); $scope.orderParam.pageSize=$scope.pageSize; $scope.orderParam.pageNumber=$scope.pageNumber; TransactionService.getAllOrderCase($scope.orderParam).then(function(result) { $scope.orderRecords = result.datas; $scope.totalCount = result.totalDataCount; $scope.totalOrder = result.totalDataCount; }); }else{ $scope.orderParam.pageSize=$scope.pageSize; $scope.orderParam.pageNumber=$scope.pageNumber; TransactionService.getAllOrderCase($scope.orderParam).then(function (result) { $scope.orderRecords = result.datas; $scope.totalCount = result.totalDataCount; $scope.totalOrder = result.totalDataCount; }); } };

PS:1、通過url中是否傳了傳的標志位orderStatus,函數indexof('orderStatus')>=0,表示含有這個標志位

2、split函數,對字符串進行分割,split('='),從字符串從左至右的第一個‘=’進行分割,分成數組,如果有1個‘=’就是分成兩個數組,‘=’之后為一個數組,‘=’之前包括‘=’為一個數組,split('=')[1],表示取‘=’之后的數組,因為js數組初始值從0開始。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM