2016-12-19 5 views
2

Ich bin neu bei Ember.js und ich habe ein paar Probleme, seine Philosophie zu verstehen. Ich weiß, Aktionen nach oben, Daten nach unten aber im wirklichen Leben, lassen Sie mich sagen, ich habe Fotorama initialisiert in My-Galerie-Komponente (Ich weiß nicht, ob das in Ordnung ist, aber ich habe es in didInsertElement Methode). Diese Bibliothek hat eigene Ereignisse. Sie konnten im Klar JS wie folgt aussehen:Wie behandelt man benutzerdefinierte Ereignisse in der ember.js-Komponente?

$('.fotorama').on('fotorama:ready', function (e, fotorama) {}); 

oder:

$('.fotorama').on('fotorama:show', function() {}); 

aber ich fühle mich in Ember, diese sollten irgendwie in Aktionen in der Komponente abgebildet werden. Meine Frage ist: Wie? Ich muss einige Aktionen (die von anderen Komponenten oder vielleicht einem Router erfasst werden) in diesen Aktionen auslösen. Also ich denke, es sollte so sein: this.sendAction('actionName', actionParams);

Antwort

3

Sie können Komponentverweis auf sendAction-Methode aufrufen.

Wenn wir eine bessere Antwort auf diese Frage finden. Ich werde meine Antwort gerne entfernen.

+0

Können Sie Dokumente oder weitere Informationen bereitstellen, warum wird dieser Ansatz nicht empfohlen? – ykaragol

+1

_didInsertElement() ist auch ein guter Ort, um Ereignislistener anzuhängen. Dies ist besonders nützlich für benutzerdefinierte Ereignisse oder andere Browserereignisse, für die kein integrierter Ereignishandler vorhanden ist._ aus [ember guide] (https://guides.emberjs.com/v2.10.0/components/the-component-lifecycle/# toc_integrieren-mit-Third-Party-Libraries-mit-Code-didoinsertelement-code) – ykaragol

+2

Normalerweise schreibe ich Code wie diesen, wenn ich mit jquery plugins arbeite. Aber es gibt eine Vorstellung von Ember-Leuten, dass die meisten Jquery-Plugins nicht gut mit Ember spielen werden. also müssen wir es selbst schreiben ... Ich habe einfach "nicht empfohlen" hinzugefügt, um zu vermeiden, mehr Stimmen zu bekommen, haha ​​:). @locks können uns aufklären. – kumkanillam

Verwandte Themen