Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用具有不同变量的一个函数_Javascript_Angularjs - Fatal编程技术网

Javascript 使用具有不同变量的一个函数

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; } }; } +

尝试创建具有相同逻辑的两个控制器。当我为每个变量使用单独的函数时,它就工作了。但当我尝试将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;
}
};
}


+
-
+
-
还可以从元素发送参数,如下所示:

 <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]++;
 };