Ich möchte einen cursor:pointer
css-Stil zu allen Elementen hinzufügen, die (click)
-Handler definiert haben (oder binde auf Click-Ereignisse). Ich glaube, dass auf AngularJS war es möglich, eine css mit [ng-click] { ... }
zu definieren, gibt es eine ähnliche Problemumgehung für Angular2/4?Alle anklickbaren Elemente in Angular2 fangen?
Antwort
1) Wenn Sie ein bestimmtes Verhalten auf alle Elemente hinzuzufügen, die (click)
Handler haben Sie Direktive wie erstellen:
@Directive({
selector: '[click]',
host: {
'style': 'cursor: pointer' // or class
}
})
export class ClickableDirective {}
2) fangen alle Element- Das hätte click
Handler ich würde überschreiben 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 {
Wenn ich richtig verstanden habe, sollte das Hinzufügen [style.cursor]="'pointer'"
zu dem Element den Trick tun.
Aber es könnte eine besser sein, eine ‚klickbaren‘ Klasse hinzufügen und in Ihrem Stylesheet folgenden definiert:
.clickable { cursor: pointer; }
Von dem, was ich sagen kann, Angular fügt nichts auf das Elemente des HTML beim Hinzufügen von (click)
.
Ja, die anklickbare Klasse ist der offensichtliche Weg. Aber ich suchte nach einer Möglichkeit, alle (derzeit) anklickbaren Elemente zu erfassen, ohne das Projekt neu zu gestalten. – Yuvals
- 1. Iterate über alle Elemente in der Vorlage in Angular2
- 2. Rabbitmq und alle Warteschlangen fangen
- 3. ASP.NET MVC Routing fangen alle
- 4. JQuery fangen alle AJAX-Fehler
- 5. Wie alle Subdomains in Plesk fangen
- 6. fangen alle Ausnahmen in einem Schienen-Controller
- 7. fangen alle Ausnahmen in Scala 2.8 RC1
- 8. Wie alle Ausnahmen in Ruby zu fangen?
- 9. Senden Sie Daten an alle Abonnenten Elemente mit beobachtbaren - angular2
- 10. Ausnahmebehandlung Versuch Fangen in Fangen
- 11. Erstellen eines anklickbaren Einbettungs-Tags
- 12. Angular2 beschränken alle Routen
- 13. Spring fangen alle Route für index.html
- 14. Entfernen überlaufbaren anklickbaren Bereich
- 15. Menü mit anklickbaren Bildern?
- 16. Anklickbaren Link erstellen
- 17. Import alle Komponenten Angular2
- 18. Wie dom Elemente in Angular2 zu zählen
- 19. Konvertiere alle Elemente in Atribuites
- 20. fangen (...) schlucken alle anderen Fänge in xcode llvm 3.0
- 21. Wie alle Klassenausnahmen im alten Stil in Python zu fangen?
- 22. fangen Sie alle nicht behandelten Ausnahmen in ASP.NET Web Api
- 23. Schlechte Idee, alle Ausnahmen in Python zu fangen
- 24. Wie alle App Exceptions/Fehler in Swift/iOS zu fangen
- 25. ein Platz, um alle plötzlichen Ausnahmen in Titan zu fangen?
- 26. Wie alle Ausnahmen auf Klassenebene in CSharp zu fangen?
- 27. Erstellen eines anklickbaren Bilds in WPF
- 28. Bild mit vier anklickbaren Bereichen
- 29. Zeile entfernen alle in Tabelle verwenden angular2
- 30. alle Elemente auswählen, die
es ein einfacher Weg, um herauszufinden: der 'Hinzufügen (klicken)' Handler, inspiziert das gerenderte Element, und sehen, ob Es gibt eindeutige Attribute im HTML. –
Ich denke, es wird nicht helfen, ich überprüfe nur meine angular2 App und (Klick) erscheint nicht in DOM. Du kannst es also nicht mit einfachem CSS tun. – Leguest