【发布时间】:2014-06-01 13:07:34
【问题描述】:
看看这个笨蛋http://plnkr.co/edit/iOqhKPMKbwkeYIhf2m2j?p=preview
有没有办法从 getSum() 获取结果值,如 DOM 中显示的那样,带有 angular 以用于另一个函数?我需要使用jquery吗?
编辑:新插件
【问题讨论】:
看看这个笨蛋http://plnkr.co/edit/iOqhKPMKbwkeYIhf2m2j?p=preview
有没有办法从 getSum() 获取结果值,如 DOM 中显示的那样,带有 angular 以用于另一个函数?我需要使用jquery吗?
编辑:新插件
【问题讨论】:
你可以在你的displaySum函数中调用getSum():
$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.displaySum中访问$scope.sum,但是如果您的权重发生变化,则包含总和的跨度将不会自动更新。
查看此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>
【讨论】:
不,这里不需要 jQuery。
实际上,您可以在控制器中的任何位置访问getSum(),例如。 g.:
var test = $scope.getSum();
console.log(test);
【讨论】:
console.log这个代码吗? test 实际上具有您正在寻找的价值。
console.log( $scope.getSum() );