Javascript 使用jQuery对AngularJS生成的表行求和
这听起来可能很奇怪,但基于以下内容,我需要使用jQuery对所有行进行求和。我使用angularjs列出所有用户,但我需要用jQuery获得每一行,然后显示所有用户的总和 唯一的问题是我不知道如何获得每一行的值来进行操作 HTMLJavascript 使用jQuery对AngularJS生成的表行求和,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,这听起来可能很奇怪,但基于以下内容,我需要使用jQuery对所有行进行求和。我使用angularjs列出所有用户,但我需要用jQuery获得每一行,然后显示所有用户的总和 唯一的问题是我不知道如何获得每一行的值来进行操作 HTML <div data-ng-app="app" data-ng-controller="controllerApp"> <table border="1"> <thead> <tr>
<div data-ng-app="app" data-ng-controller="controllerApp">
<table border="1">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="user in users">
<td>{{user.name}}</td>
<td class="sum">{{user.age}}</td>
</tr>
</tbody>
<tfoot>
<tr>
<td><strong>Sum</strong></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
Angularjs
var app = angular.module("app", []);
app.controller("controllerApp", function($scope){
$scope.users = [
{name: "Marie", age: 24},
{name: "Andy", age: 26},
{name: "Peter", age: 21},
{name: "Elizabeth", age: 23},
{name: "Frank", age: 27},
{name: "Claire", age: 25}
]
});
最好的解决方案是不要在角度范围之外进行任何修改
请阅读以下内容: 但如果您确实必须从外部访问它,那么这是正确的方法:
$('table').scope().users.reduce((a,b) => a+b.age, 0)
我会这样做:
$scope.users = [
{name: "Marie", age: 24},
{name: "Andy", age: 26},
{name: "Peter", age: 21},
{name: "Elizabeth", age: 23},
{name: "Frank", age: 27},
{name: "Claire", age: 25}
]
$scope.totally = $scope.users.reduce((a,b) => a+b.age, 0)
// <td class="total">{{totally}}</td>
$scope.users=[
{姓名:“玛丽”,年龄:24},
{姓名:“安迪”,年龄:26},
{姓名:“彼得”,年龄:21},
{姓名:“伊丽莎白”,年龄:23},
{姓名:“弗兰克”,年龄:27},
{姓名:“克莱尔”,年龄:25}
]
$scope.total=$scope.users.reduce((a,b)=>a+b.age,0)
//{{完全}
最好的解决方案是不要在角度范围之外进行任何修改请阅读以下内容: 但如果您确实必须从外部访问它,那么这是正确的方法:
$('table').scope().users.reduce((a,b) => a+b.age, 0)
我会这样做:
$scope.users = [
{name: "Marie", age: 24},
{name: "Andy", age: 26},
{name: "Peter", age: 21},
{name: "Elizabeth", age: 23},
{name: "Frank", age: 27},
{name: "Claire", age: 25}
]
$scope.totally = $scope.users.reduce((a,b) => a+b.age, 0)
// <td class="total">{{totally}}</td>
$scope.users=[
{姓名:“玛丽”,年龄:24},
{姓名:“安迪”,年龄:26},
{姓名:“彼得”,年龄:21},
{姓名:“伊丽莎白”,年龄:23},
{姓名:“弗兰克”,年龄:27},
{姓名:“克莱尔”,年龄:25}
]
$scope.total=$scope.users.reduce((a,b)=>a+b.age,0)
//{{完全}
在确定Angular渲染完成后如何执行jQuery比想象中要麻烦得多之后,下面是我使用Angular and的解决方案
var-app=angular.module(“app”,[]);
应用控制器(“controllerApp”,功能($scope){
$scope.users=[
{姓名:“玛丽”,年龄:24},
{姓名:“安迪”,年龄:26},
{姓名:“彼得”,年龄:21},
{姓名:“伊丽莎白”,年龄:23},
{姓名:“弗兰克”,年龄:27},
{姓名:“克莱尔”,年龄:25}
];
$scope.sum=\.reduce($scope.users,函数(sum,n){
返回和+n.age;
}, 0);
});代码>
名称
年龄
{{user.name}
{{user.age}
总和
{{sum}}
在确定Angular渲染完成后如何执行jQuery比想象中要麻烦得多之后,下面是我使用Angular and的解决方案
var-app=angular.module(“app”,[]);
应用控制器(“controllerApp”,功能($scope){
$scope.users=[
{姓名:“玛丽”,年龄:24},
{姓名:“安迪”,年龄:26},
{姓名:“彼得”,年龄:21},
{姓名:“伊丽莎白”,年龄:23},
{姓名:“弗兰克”,年龄:27},
{姓名:“克莱尔”,年龄:25}
];
$scope.sum=\.reduce($scope.users,函数(sum,n){
返回和+n.age;
}, 0);
});代码>
名称
年龄
{{user.name}
{{user.age}
总和
{{sum}}
不要使用jQuery或任何DOM查询来执行此操作。。。使用javascript控制器不要使用jQuery或任何DOM查询来执行此操作。。。使用javascript控制器您不需要lodash来完成这件简单的事情。。。javascript内置了reduce…在体面的浏览器中,你是对的,你不需要它,因为javascript内置了它。直到我看到你的答案,我才意识到javascript已经内置了它。在我的脑海里,我说“哦,那需要一些收集操作,所以LoDash!”你不需要LoDash来做这个简单的事情。。。javascript内置了reduce…在体面的浏览器中,你是对的,你不需要它,因为javascript内置了它。直到我看到你的答案,我才意识到javascript已经内置了它。在我的脑海里,我说:“哦,那需要一些收集工作,所以洛达斯!”