使用 AngularJS 在新页面中查看选定的行详细信息
view the selected row detail in new page using angularjs
嗨,我想在下一页显示选定的行值详细信息,我在第一页中仅显示名称和城市,单击按钮后将查看其余字段。 我的网页
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<script src="detailCtrlr.js"></script>
</head>
<body ng-app="myApp" ng-controller="customersCtrl">
<table>
<tr>
<td>Name</td>
<td>Age</td>
<td>details</td>
</tr>
<tr ng-repeat="x in names">
<td>{{x.Name}}</td>
<td>{{x.City}}</td>
<td><a href="#/viewdetail" type="submit" name="viewdetails" ng-click="detail()">view</a></td>
</tr>
</table>
</body>
</html>
我的控制器是
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
$http.get("details.json").then(function(response) {
$scope.names = response.data.records;
});
$scope.detail=function(){
//details code here
}
});
现在我正在获取此页面中的所有记录并显示正常,现在我想在详细信息页面中查看所选行的其他详细信息。
您可以使用本地存储查看所选行的所有数据。请找到下面的代码:
如果您获得每条记录的唯一 ID,请尝试以下操作:
您的 HTML 将 : <a href="#/viewdetail" type="submit" name="viewdetails" ng-click="detail(x.id)">view</a>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http,$location,filter) {
$http.get("details.json").then(function(response) {
$scope.names = response.data.records;
});
$scope.detail=function(SelectedRecordeid){
var NameObj = $filter('filter')($scope.names, { id: SelectedRecordeid })[0];
localStorage.setItem("NamesDetails",JSON.stringify(NameObj));
$location.path('/viewdetail');
}
});
如果您没有获得每条记录的唯一 ID,请使用 name 尝试此操作:您的 HTML 将 : <a href="#/viewdetail" type="submit" name="viewdetails" ng-click="detail(x.Name)">view</a>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http,$location,filter) {
$http.get("details.json").then(function(response) {
$scope.names = response.data.records;
});
$scope.detail=function(SelectedName){
var NameObj = $filter('filter')($scope.names, { Name: SelectedName })[0];
localStorage.setItem("NamesDetails",JSON.stringify(NameObj));
$location.path('/viewdetail');
}
});
现在,在下面的"查看详细信息"页面的控制器用户中,可以从本地存储中准备好数据。
var getAlldata = IsBlank(localStorage.NamesDetails) ? [] : JSON.parse(localStorage.NamesDetails);
您将获得"getAlldata"变量中的所有数据。
====
===============您也可以使用以下方法在另一个页面中获取数据。在这种情况下,您必须调用两个单独的服务呼叫。重写下面的函数
$scope.detail=function(SelectedRecordeid){
window.location.hash = '#/viewdetail?id=' + SelectedRecordeid;
}
现在在第二页中使用以下代码:
function GetQueryString(key) {
'use strict';
var res,
arrQueryStrings = window.location.hash.split("?"),
queryStringCollection;
if (arrQueryStrings[1] === undefined || arrQueryStrings[1] === null) {
return null;
}
queryStringCollection = arrQueryStrings[1].split("&");
$.each(queryStringCollection, function (index, value) {
var queryStringName = value.split("=")[0];
if (queryStringName === key) {
res = value.split("=")[1];
}
});
return res;
}
$scope.SelectedRecordeid = IsBlank(GetQueryString("id")) ? 0 : GetQueryString("id");
现在,您在$scope中具有所选行的id。SelectedRecordeid,因此您可以使用此 ID 调用服务,并在第二页中获取完整详细信息。
得到了我的问题的解决方案,我的控制器是
app.controller('homeController', function($scope, $http, $location,
$rootScope, $filter, $window) {
$http.get("app/components/shared/json/Patients.json").success(
function(response) {
$scope.emp = response.Employees
$scope.select = function(list) {
debugger;
//$rootScope.selected = list;
$scope.selected = list;
localStorage.setItem("NamesDetails", JSON
.stringify($scope.selected));
$location.path('/homeView')
console.log(list)
}
$scope.cart = JSON.parse(localStorage.getItem("NamesDetails"));
console.log($scope.cart)
})
})
和 HTML 格式
<td> <a ng-click="select(list)">view</a></td>
我知道我回答这个问题有点晚了,但对于那些仍然面临这个问题的人来说,这是我的代码,它在敲打我的头 3 天寻找解决方案后工作。
我正在使用ng资源来显示详细信息。我有一家名为"listfactory"的工厂。
//listFactory.js
Angular.module("main").factory('listFactory', function($resource){
var url = 'data.json'
return $resource(url, {}, {
query:{
method: "GET",
params: {},
isArray: true,
cache: true,
//transformResponse
//interceptor
},
get: {
method: "GET",
params: {},
isArray: true,
cache: true,
}
})
});
控制器 "detailscontroller.js
.controller("detailsController", function($scope, $http, $routeParams, $route, listFactory){
$scope.employee = {};
$scope.employee = listFactory.get({id: $routeParams.id });
$scope.employee.$promise.then(function(data) {
console.log(data);
//$scope.employee = data[$routeParams.id];
angular.forEach( data,function(employee){
console.log(employee);
if( employee.email == $routeParams.id ){
$scope.employee = employee;
}
});
});
});
基本上,我正在迭代循环以检查路由参数是否与员工的电子邮件匹配。希望这对:)有所帮助
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何在完整日历中的当天点击时显示活动详细信息
- Magento目录价格折扣规则不适用于产品详细信息页面
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- Json阵列的详细信息显示在三页的angularjs中
- 如何获取数组详细信息另一页
- 如何用java脚本从领英获取详细信息
- Javascript函数详细信息
- 如何创建multiselect来显示Django中每个选定项的详细信息
- jQuery:获取图像加载错误的详细信息
- 如何从重定向的支付处理器网站提取交易详细信息并保存到我的rails 4数据库
- JQuery/Javascript来获取给定URL的Http Header详细信息
- 使用javascript/Jquery获取HTML5文件的详细信息
- AngularJS通过匹配ID访问更多详细信息
- 使用 AngularJS 在新页面中查看选定的行详细信息
- 相同的控制器用于详细信息并在 angularjs 中进行编辑
- 更新AngularJS中的父子详细信息
- 在Braintree中使用AngularJS加密信用卡详细信息
- 如何单击表行中的图标并重定向到新的“详细信息页”;在angularjs
- AngularJs查看用户详细信息