次のように、コンポーネントヘルパーで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
@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を使用することの欠点であることを微妙に示唆しています。 それが「うまくいった」ならそれは素晴らしいでしょう:)
最も参考になるコメント
したがって、
input
コンポーネントの名前を変更する必要があることを意味します。これは明らかに非現実的です。あるいは、標準のハイフン付きラッパーを使用できるようにする必要があります。コンポーネントヘルパーで標準の(組み込みの)コンポーネントを使用できないことは、かなり奇妙で恣意的な制限のように思われます