gpt4 book ai didi

javascript - 服务字符串参数内的 Angular 转换为数组

转载 作者:行者123 更新时间:2023-12-02 16:31:21 27 4
gpt4 key购买 nike

我有以下 Angular 结构

//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;

}):

我可以看到我在第 1 行中输入的字符串。但在第 2 行中,它是一个数组。有什么原因吗??

最佳答案

您正在通过arguments对于服务函数来说,它不是一个数组,它只是类似数组。它是传递到函数 validateMyname 中的所有参数的集合。如果您只想传递名称,您可以这样做:

 return myService.validateXY(arg);

简而言之:

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

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

如果您希望将从 Controller 函数传输的可变数量的参数传递到服务函数,您可以使用function.apply来实现。 :

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

关于javascript - 服务字符串参数内的 Angular 转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com