首页 > 解决方案 > 如何在 ng-click 上将参数传递给重定向页面?

问题描述

我正在尝试使用 ng-repeat 显示网格 div。它将显示三个网格,每个网格都带有一个作为参数传递的 SensorID。现在,我创建了一个 ng-click 以在单击每个 div 时重定向到另一个页面。在重定向时,我还想传递每个 div 的相应 SensorID。

我已经尝试将参数传递给 ng-click 函数。我在 ng-click 的控制台中获得了单击的 SensorID,但我无法在重定向页面中显示它。

我得到这样的东西,其中 404273 和 404279 是 SensorID。 http://localhost:4400/index.html#!/WaterDoorMotion/404273 http://localhost:4400/index.html#!/WaterDoorMotion/404279

PS:在代码中,mainCtrl 是我加载 AngularJS 的主控制器。

/*----Angular JS----*/ 
vm.GetWaterDoorMotion = function () {
        var WaterDoorMotionURL = url + 'sensors/waterdoormotion';
        $http.get(WaterDoorMotionURL).then(function (response) {
            vm.WaterDoorMotion = response.data;
 });
    }

 vm.RedirectToWaterDoorMotion = function (SensorID) {
        vm.Sensorid = SensorID
        $location.path('/WaterDoorMotion/' + vm.Sensorid);
    }

/*----HTML----*/
//First Page
 <div  ng-repeat="Sensor in mainCtrl.WaterDoorMotion" ng-click="mainCtrl.RedirectToWaterDoorMotion(Sensor.SensorID)"
<span>{{Sensor.SensorName}}</span><p>{{Sensor.SensorID}}</p></div>

//Redirected Page
<div>
    <span>SensorID : {{mainCtrl.Sensorid}}</span>
</div>

带 SensorID 的 Div

标签: angularjsparameter-passing

解决方案


您可以在查询参数中传递 sesnsor id,即localhost:4400/index.html#!/WaterDoorMotion?id=404273 ,然后在重定向页面中提取它,即

var sensorId = new RegExp('[\?&]id=([^&#]*)').exec(window.location.href);//RegExp for extracting
      var cId = "";
      if(sensorId != undefined){
        if(sensorId.length > 1){
          cId = sensorId[1];
        }
      }
console.log("cId",cId); 

推荐阅读