我第一次看到下圖第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早已結束。