Javascript 使用jQuery对AngularJS生成的表行求和

Javascript 使用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>

这听起来可能很奇怪,但基于以下内容,我需要使用jQuery对所有行进行求和。我使用angularjs列出所有用户,但我需要用jQuery获得每一行,然后显示所有用户的总和

唯一的问题是我不知道如何获得每一行的值来进行操作

HTML

<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已经内置了它。在我的脑海里,我说:“哦,那需要一些收集工作,所以洛达斯!”