得到角度显示在DOM中的函数的结果

时间:2014-06-01 13:07:34

标签: jquery angularjs

看看这个plunker http://plnkr.co/edit/iOqhKPMKbwkeYIhf2m2j?p=preview

有没有办法从带有角度的DOM中显示的getSum()中获取结果值,以便在另一个函数中使用?我需要使用jquery吗?

编辑:新的plunker

2 个答案:

答案 0 :(得分:1)

不,你这里不需要jQuery。

实际上,您可以在控制器的任何位置访问getSum(),例如: G:

var test = $scope.getSum();
console.log(test);

答案 1 :(得分:1)

您可以在getSum()功能中致电displaySum

$scope.displaySum = function(){
   //code to get result from getSum
   var sum = $scope.getSum();
   //do something with sum here
};

可以getSum()的值分配给范围内的变量

$scope.sum = $scope.getSum();

并将您的html绑定到$scope.sum而不是$scope.getSum(),然后从$scope.sum内访问$scope.displaySum,但是如果总和的范围不会自动更新,如果你的体重会发生变化。

请查看此plunker以查看其是否有效。

此外,如果你的权重是可编辑的,你会希望将它们存储为一个对象数组而不仅仅是一个整数数组。否则,ng-repeat中的绑定将无法正确更新。

更新

概括您的getSum功能,将line作为参数。然后在你的ng-repeat中你可以这样称呼它:

getSum(line)

同样,您可以这样调用displaySum

displaySum(lines[0])

您实际上甚至不需要displaySum。只显示这样的总和

<div>Sum value from line1:{{getSum(lines[0])}}</div>
<div>Sum value from line2:{{getSum(lines[1])}}</div>
<div>Sum value from line3:{{getSum(lines[2])}}</div>

或者更好

<div ng-repeat="line in lines">
    Sum value from line{{$index+1}}:{{getSum(line)}}
</div>

New Plunker