Ich würde dieses Problem angehen, indem die Aktion bereitstellen, die my-field
aufrufen wird. Sie können dies tun, eine durch Closure Action
Da ein „Block“ Komponente (wie my-scale
Variablen zu seinem Block zur Verfügung stellen kann (wo my-field
ist) die Aktion ergeben können auf key-up
// my-field.hbs
{{yield (action 'some-action-to-invoke-on-key-up')}}
rufen und dann passieren in das Feld
{{#my-scale as |someAction|}}
{{my-field action=(action someAction)}}
{{/my-scale}}
, die Sie dann an das key-up
Ereignis binden kann
{{my-textfield label=fldName key-up=(action someAction)}}
Dies ist IMO ein bisschen einfacher als sprudelnde regelmäßige Aktionen; Sie können die Funktion stattdessen als Funktion übergeben und sie einfach wie eine normale Funktion aufrufen (oder an ein Ereignis binden)
Ich habe eine kleine Demo zusammengestellt, damit Sie sie in Aktion sehen können here.
Ich sah Sie definierten Funktionsname wie ''update-Wert' (Wert)' dieser Code in Ihrem Twiddle. ist es äquivalent zu 'updateValue (value)'. Könnten Sie mir bitte zeigen, was das ist? – kumkanillam
Eine Aktion mit dem Namen 'updateValue' oder' update-value' ist ziemlich identisch. Meine persönliche Präferenz ist nur Kebab-Fall-Aktionen, um sie von Werten abheben, aber es ist funktionell gleichwertig. Es kommt nur darauf an, dass die an den Helper "action" übergebene Zeichenfolge mit dem Namen der in der Komponente definierten Aktion übereinstimmt. – alexlafroscia
Vielen Dank für die Details. – kumkanillam