Ember.js: コンポーネントヘルパーで入力コンポーネントを使用することはできません

作成日 2016年03月17日  ·  3コメント  ·  ソース: emberjs/ember.js

次のように、コンポーネントヘルパーでinputコンポーネントを使用しようとしています。
passedComponent=(component 'input' type="number" value=myValue)

次のようなアサーションエラーが発生します。
Uncaught Error: Assertion Failed: You cannot use 'input' as a component name. Component names must contain a hyphen

最も参考になるコメント

したがって、 inputコンポーネントの名前を変更する必要があることを意味します。これは明らかに非現実的です。あるいは、標準のハイフン付きラッパーを使用できるようにする必要があります。

コンポーネントヘルパーで標準の(組み込みの)コンポーネントを使用できないことは、かなり奇妙で恣意的な制限のように思われます

全てのコメント3件

@stevesimsこれは正しいです。 inputを使用してクロージャーコンポーネントを作成することは現在できません。 正当化はグリマーコンポーネントにいくらか結びついています。それらのためにinputという名前を予約したいと思います。

バグではないので、今はこれを閉じますが、再度開いて議論を続けることができます。

したがって、 inputコンポーネントの名前を変更する必要があることを意味します。これは明らかに非現実的です。あるいは、標準のハイフン付きラッパーを使用できるようにする必要があります。

コンポーネントヘルパーで標準の(組み込みの)コンポーネントを使用できないことは、かなり奇妙で恣意的な制限のように思われます

{{#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}}

私はこれを有用な回避策として提供しているだけでなく、Emberを使用することの欠点であることを微妙に示唆しています。 それが「うまくいった」ならそれは素晴らしいでしょう:)

このページは役に立ちましたか?
0 / 5 - 0 評価