如何在ng-click上将参数传递到重定向页面?

时间:2019-05-14 04:37:08

标签: angularjs parameter-passing

我正在尝试使用ng-repeat显示网格div。它将显示三个网格,每个网格都带有作为参数传递的SensorID。现在,我创建了一个ng单击以在每个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>

Div's with SensorID

1 个答案:

答案 0 :(得分:0)

您可以在查询参数中传递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);