Übergeben einer Funktion als Attributwert

9

Ich frage mich, ob es möglich ist, eine Funktion foo() als Attribut func="foo()" zu übergeben und this.func() innerhalb des Polymerelements zu nennen?

%Vor%

Ich habe jahrelang versucht, dies ohne Glück zu funktionieren.

Vielen Dank im Voraus.

    
Flying Emu 06.07.2015, 13:21
quelle

1 Antwort

2
%Vor%

Der Trick ist also, dass "foo ()" eine Zeichenkette ist, wenn Sie sie zuerst an das Polymer-Element übergeben. Ich habe auch eine ganze Weile damit gekämpft und das ist der einzige Weg, wie ich es finden könnte. Diese Lösung erstellt eine Funktion, die Ihren Funktionsaufruf zurückgibt, den Sie als den Wert einer Ihrer Polymerelementeigenschaften zuweisen.

Einige Leute sagen vielleicht, dass Sie den Konstruktor von Function nicht verwenden sollten, weil er eval () und ... ähnlich ist. Nun, das ganze Eval ist böse. Aber wenn Sie es nur verwenden, um einen Aufruf an eine andere Funktion zurückzugeben, und Sie die Auswirkungen des Umfangs verstehen, dann könnte dies ein geeigneter Anwendungsfall sein. Wenn ich falsch liege, bin ich mir sicher, dass uns jemand informiert!

Hier ist ein Link zu einer schönen SO-Antwort über die Unterschiede zwischen eval () und dem Konstruktor Function, falls es helfen kann: Ссылка

Schließlich stelle ich dies im "angefügten" Lebenszyklus-Ereignis auf die sichere Seite, weil es später als "bereit" auftritt. Ich bin mir nicht sicher, ob ein früherer Lebenszyklus-Event oder 'ready' anstelle von 'attached' verwendet werden könnte. Vielleicht kann jemand diese Antwort verbessern und uns wissen lassen.

    
CoolestUsername 19.08.2015, 20:26
quelle

Tags und Links