Ember.js: Eingabekomponente kann nicht mit Komponentenhilfe verwendet werden

Erstellt am 17. März 2016  ·  3Kommentare  ·  Quelle: emberjs/ember.js

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

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 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

Alle 3 Kommentare

@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" :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen