Javascript 创建绑定到AngularJS中其他输入的计算值数组
我有两组输入,每个都绑定到数组中的值。每个阵列创建网格的边,网格的交点将表示定义交点的两个输入的一些计算。假设aArr是行,bArr是列Javascript 创建绑定到AngularJS中其他输入的计算值数组,javascript,angularjs,Javascript,Angularjs,我有两组输入,每个都绑定到数组中的值。每个阵列创建网格的边,网格的交点将表示定义交点的两个输入的一些计算。假设aArr是行,bArr是列 $scope.aArr = [{val: 1},{val: 1},{val: 1}]; $scope.bArr = [{val: 1},{val: 1},{val: 1}]; 我是否可以创建一个交叉点数组,每当每个定义值更新时,每个交叉点都会更新,然后将该数组与ng repeat一起使用以创建标记 差不多 $scope.intersections = [{v
$scope.aArr = [{val: 1},{val: 1},{val: 1}];
$scope.bArr = [{val: 1},{val: 1},{val: 1}];
我是否可以创建一个交叉点数组,每当每个定义值更新时,每个交叉点都会更新,然后将该数组与ng repeat一起使用以创建标记
差不多
$scope.intersections = [{val: $scope.aArr[0].val + $scope.bArr[0]}...]
提供不更新的交点,每当我尝试将interection[n].val定义为函数时,都会出现错误
编辑
似乎我可以定义$scope.intersections = [
[function(){return $scope.aArr[0] + $scope.bArr[0]}, function(){return $scope.aArr[0] + $scope.bArr[1]} ... ],
[...],
[...]
];
但我不能定义一个空数组,然后通过编程填充它。Firebug抛出类似于错误:[$interpolate:interr]
有什么想法吗?如果您想在对象或对象值发生变化时进行一些计算,请使用
WATCH
功能
请参阅此小提琴以了解示例:
在本例中,我将两个数组的第一个值相加。如果您更改这些值,它将更新总和
app.controller('MainCtrl', function ($scope) {
$scope.aArr = [{
val: 1
}, {
val: 2
}];
$scope.bArr = [{
val: 3
}, {
val: 43
}];
$scope.$watch("aArr", function () {
$scope.doWorkInArrayChange();
}, true);
$scope.$watch("bArr", function () {
$scope.doWorkInArrayChange();
}, true);
$scope.sum = "";
$scope.doWorkInArrayChange = function () {
$scope.sum = parseInt($scope.aArr[0].val) + parseInt($scope.bArr[0].val);
};