使用PrimeNG作为本地Angular UI组件,有一个名为“ slidemenu”的菜单,它具有一个有用的属性“ backLabel”。该属性最终创建一个用于导航回到上一个视图的按钮。但是,在整个页面中切换时,将跳过生成的后退按钮。
我的想法是向元素添加“ tabindex”属性,但是,我找不到解决方法,我看不到任何有关primeNG的文档来说明如何操作。
角度分量看起来像:
<p-slideMenu backLabel="Back" [model]="items" [menuWidth]="337"></p-slideMenu>
生成时,它看起来像:
<span class="ng-classname">Back</span>
我知道我可以使用span.ng-classname
作为选择器来访问css,但是我仍然看不到向元素添加属性。
答案 0 :(得分:1)
您需要在对p-slideMenu组件的引用上使用renderer2
,然后访问向后的ElementRef:
<p-slideMenu #myMenu></p-slideMenu>
然后,在包含幻灯片菜单的组件上:
import { ViewChild } from '@angular/core';
import { SlideMenu } from 'primeng/slidemenu';
// (somewhere in your code where is needed)
//...
@ViewChild('myMenu') slider: SlideMenu;
//...
this.slider.renderer.setAttribute(this.slider.backward.nativeElement, 'tabindex', '1');
这样,您将在幻灯片菜单的向后控件上获得tabindex属性集。您应该在适当的时间(即完全显示滑块时)添加它。您可能需要执行一些清理操作(例如销毁操作等)。取决于您对代码的预期行为等。