Versuchen Sie, die input
Komponente mit dem Komponenten-Helper zu verwenden, wie folgt:
passedComponent=(component 'input' type="number" value=myValue)
führt zu einem Assertionsfehler wie folgt:
Uncaught Error: Assertion Failed: You cannot use 'input' as a component name. Component names must contain a hyphen
@stevesims das ist richtig. Das Erstellen einer Abschlusskomponente mit input
ist derzeit nicht möglich. Die Begründung ist etwas an Glimmer Components geknüpft, für diese wollen wir uns den Namen input
reservieren.
Ich werde dies vorerst schließen, da es sich nicht um einen Fehler handelt, aber wir können wieder öffnen und die Diskussion fortsetzen.
die Implikation ist daher, dass die input
Komponente umbenannt werden muss - was offensichtlich unpraktisch ist - oder alternativ ein Standard-Wrapper mit Bindestrich verfügbar sein sollte
Eine standardmäßige (integrierte) Komponente nicht mit dem Komponenten-Helper verwenden zu können, scheint eine ziemlich seltsame und willkürliche Einschränkung zu sein
{{#if requiresComponentSubstitution}}
<!-- requiresComponentSubstitution: is not "input" -->
{{component inputComponentName
id=(concat elementId '-control')
class='form-control'
type=type
name=valuePath
placeholder=placeholder
value=value
input=(action 'onInput')
}}
{{else}}
{{input id=(concat elementId '-control')
class='form-control'
type=type
name=valuePath
placeholder=placeholder
value=value
input=(action 'onInput')
}}
{{/if}}
Ich biete dies sowohl als hilfreiche Problemumgehung als auch subtil an, dass dies ein Nachteil der Verwendung von Ember ist. Es wäre fantastisch, wenn es "einfach funktioniert" :)
Hilfreichster Kommentar
die Implikation ist daher, dass die
input
Komponente umbenannt werden muss - was offensichtlich unpraktisch ist - oder alternativ ein Standard-Wrapper mit Bindestrich verfügbar sein sollteEine standardmäßige (integrierte) Komponente nicht mit dem Komponenten-Helper verwenden zu können, scheint eine ziemlich seltsame und willkürliche Einschränkung zu sein