angularjs - 如何在 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>
解决方案
您可以在查询参数中传递 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);
推荐阅读
- json - 将多级 JSON 转换为 Excel,然后将其转换回 JSON
- swift - 合并接收器:忽略receiveValue,只需要完成
- android-studio - 如何让 Android Studio 识别我的普通 Gradle Java 项目?
- c# - RijndaelManaged .NET Framework 和 .NET Core 的区别
- python - 在多索引列数据框中的列末尾添加值
- pyspark - 在 pyspark 中使用 agg 在同一列上进行多个聚合
- python - 使用 tf.data 多次训练模型并仍在探索所有数据
- c++ - 是否可以在一行中初始化新的 std::vector ?
- html - 如何使用python在streamlit应用程序中打开atoti链接?
- html - 两个项目彼此不对齐