我想为cursor:pointer
所有(click)
定义了处理程序(或具有绑定到click事件的元素)添加css样式。我相信在AngularJS上可以使用定义CSS [ng-click] { ... }
,对于Angular2 / 4是否有类似的解决方法?
1)如果要向具有(click)
处理程序的所有元素添加某些行为,则可以创建如下指令:
@Directive({
selector: '[click]',
host: {
'style': 'cursor: pointer' // or class
}
})
export class ClickableDirective {}
2)要捕获所有具有click
处理程序的元素,我会覆盖EventManager
import { Injectable, Inject, NgZone } from '@angular/core';
import { EventManager, EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';
@Injectable()
export class MyEventManager extends EventManager {
constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: any[], private zone: NgZone) {
super(plugins, zone);
}
addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {
if(eventName === 'click') {
element.style.cursor = 'pointer'; // or add class
}
return super.addEventListener(element, eventName, handler);
}
}
app.module.ts
...
providers: [
{ provide: EventManager, useClass: MyEventManager }
]
})
export class AppModule {
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句