zl程序教程

您现在的位置是:首页 >  其他

当前栏目

SAP Spartacus cxFocus Directive施加后导致tabindex为-1的副作用研究

SAP 研究 导致 Spartacus directive
2023-09-14 09:02:55 时间

我第一次看到下图第44行代码时,以为仅仅是一个简单的赋值操作,把requiredTabindex的值赋成-1:

后来发现,这个requiredTabindex不是一个字段的值,而是一个set函数的名称:

而这个requiresExplicitTabIndex,也不是一个属性的名称,而是一个get函数:

tabindex默认值为0,

只要元素是A标签,且href或者routerLink至少拥有一个,则requiesExplicitTabIndex返回false,则HTML元素就不会遭受tabindex设置为-1的厄运。

注意一个问题,在requiesExplicitTabIndex被触发时,a标签的href属性尚未生成:

这个属性直到Angular的tick函数触发的changeDetect里才会被赋予a标签的href属性:

然而此时requiesExplicitTabIndex的evaluation早已结束。

更多Jerry的原创文章,尽在:“汪子熙”: