不允许对链接函数的元素参数进行数组操作

no array operation allowed on element parameter of link function

本文关键字:数组 操作 参数 元素 链接 函数 不允许      更新时间:2023-09-26
link: function(scope, element, attrs, model) 

这是角度指令的链接函数。

当我查看元素对象时,它具有以下结构

[<input google-place type=​"text" id=​"existingAreas" class=​"form-control      ng-isolate-scope" place=​"newProperty.address.selectedArea" country=​"in">​]

控制台.log(元素(给出这个

R[1]
0: input#existingAreas.form-control.ng-isolate-scope
length: 1
__proto__: Object[0]

它看起来像是一个数组。但是当我尝试像弹出一样执行数组操作时,它会出错。虽然引用元素[0]有效。

我不明白为什么会这样

查看文档,我们可以看到:

元素是此指令匹配的 jqLite 包装元素。

jQuery(以及这样的jqLite(返回所谓的类数组对象,这意味着它们具有数字索引属性和长度属性。 这些看起来像数组,可以通过调用函数与某些数组函数一起使用,但它们不是真正的数组,因此没有正常的数组方法。

要获取最后一个元素,您可以简单地执行以下操作

var last = element[element.length-1];

这是一个对象,你不能对它进行数组操作。如果您需要从对象中删除键,请尝试

delete element[0]

delete element.key

delete element['key']