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.