Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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_Angularjs Scope_Angularjs Service - Fatal编程技术网

Javascript 转换为数组的服务字符串参数中的角度

Javascript 转换为数组的服务字符串参数中的角度,javascript,angularjs,angularjs-scope,angularjs-service,Javascript,Angularjs,Angularjs Scope,Angularjs Service,我有如下的角度结构 //html <input type="text" model="name"> <div ng-if="!validateMyname(name)"></div> //controller
 $scope.validateMyname = function(arg){ console.log(arg); //LINE 1 return myService.validateXY(arguments); }

我有如下的角度结构

//html     
<input type="text" model="name">
<div ng-if="!validateMyname(name)"></div>

//controller
 
$scope.validateMyname = function(arg){   
   console.log(arg);  //LINE 1 
   return myService.validateXY(arguments);
}

//service
angular.module('services').factory('myService', function () {
    myService.validateXY = function(a){
        console.log(a); //LINE 2
     }
     return myService;

}):
//html
//控制器
 
$scope.validateMyname=函数(arg){
console.log(arg);//第1行
返回myService.validateXY(参数);
}
//服务
角度.module('services').factory('myService',function(){
myService.validateXY=函数(a){
console.log(a);//第2行
     }
     返回myService;
}):
我可以看到我在第1行中输入的字符串。但在第2行中,它是一个数组。您传递给服务函数的原因是什么?它不是一个数组,它只是一个数组。它是传递给函数的所有参数的集合。
validateMyname
。如果您只想传递名称,可以执行以下操作:

 return myService.validateXY(arg);
简言之:

第1行-您只是通过函数的参数使用传入值,该参数是在该函数范围内定义的局部变量
arg

Line2-您正在访问从LINE1之后的行传入的特殊参数对象

如果您希望将可变数量的参数从控制器函数传递到服务函数,您可以使用:

 myService.validateXY.apply(null, arguments); //null provided you don't refer to context via this.