首页 > 解决方案 > 如何从angularjs中的表中获取选定的行

问题描述

我想从表中获取选定行的值。这是我到目前为止所尝试的以及附加的 plunkr。https://plnkr.co/edit/QDPh4q0hQdlW09orayyL?p=preview

<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + 
document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x"src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>
<script src="script.js"></script>
</head>

<body ng-controller="MainCtrl">
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th> 
<th>Age</th>
</tr>
<tr ng-click="getData()">
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
</body>

标签: htmlcssangularjs

解决方案


最好迭代每个personviang-repeat并将它们显式传递给您的函数,而不是在 HTML 中硬编码并使用 DOM:

$scope.people = [{
    name: 'Jill',
    lastName: 'Smith',
    age: 50
  },
  ....
]
$scope.getData = function(person) {
  console.log('Selected person is ' + person.name);
}
<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr ng-repeat='person in people' ng-click="getData(person)">
    <td>{{person.name}}</td>
    <td>{{person.lastName}}</td>
    <td>{{person.age}}</td>
  </tr>
</table>

推荐阅读