Javascript 使用具有不同变量的一个函数
尝试创建具有相同逻辑的两个控制器。当我为每个变量使用单独的函数时,它就工作了。但当我尝试将var作为参数传递时,它什么也不做 代码如下:Javascript 使用具有不同变量的一个函数,javascript,angularjs,Javascript,Angularjs,尝试创建具有相同逻辑的两个控制器。当我为每个变量使用单独的函数时,它就工作了。但当我尝试将var作为参数传递时,它什么也不做 代码如下: 函数Ctrl($scope){ $scope.Score1=0; $scope.score=0; $scope.add_btn=函数(num){ $scope.num++; }; $scope.dist\u btn=函数(num){ 如果($scope.num>0){ $scope.num--; }否则{ $scope.num=0; } }; } +
函数Ctrl($scope){
$scope.Score1=0;
$scope.score=0;
$scope.add_btn=函数(num){
$scope.num++;
};
$scope.dist\u btn=函数(num){
如果($scope.num>0){
$scope.num--;
}否则{
$scope.num=0;
}
};
}
+
-
+
-
还可以从元素发送参数,如下所示:
<button ng-click="add_btn('Score1')">+</button>
您可以在不使用任何数组的情况下使用此逻辑,您使用了$scope.num,但它在作用域上创建了一个新变量,因此失败。这将正常工作
函数Ctrl($scope){
$scope.Score1=0;
$scope.score=0;
$scope.add_btn=函数(num,from){
num++;
if(from==1)
$scope.Score1=num;
其他的
$scope.Score2=num;
};
$scope.dist_btn=函数(num,from){
如果(数值>0){
num--;
}否则{
num=0;
}
if(from==1)
$scope.Score1=num;
其他的
$scope.Score2=num;
};
}
+
-
+
-
简单而肮脏的解决方案:)
还有更好的
函数Ctrl($scope){
$scope.Score=[0,0];
$scope.add_btn=函数(num){
$scope.Score[num]++;
};
$scope.dist_btn=函数(num){
如果($scope.Score[num]>0){
$scope.Score[num]--;
}否则{
num=0;
}
};
}
+
-
+
-
在函数中尝试$scope[num]而不是$scope.num。在进一步讨论之前,我建议使用服务在2+控制器之间共享逻辑,而不是像这样共享函数。
<button ng-click="add_btn('Score1')">+</button>
$scope.add_btn = function(id)
{
$scope[id]++;
};