実行時にカスタムコンポーネントテンプレート内のエレメントのタイプを動的に定義することは可能ですか?実行時にエレメントタイプを変更する
私は、次の例にbutton
と
a
要素の内側の内容の重複を避けるしたいと思い
:
<template>
<!--
The type of element should be defined at runtime and can be a standard HTML "button"
or an anchor "a"
-->
<element type.bind="${isLinkBtn ? 'a' : 'button'}">
<span class="btn-icon">${icon}</span>
<span class="btn-text">${contentText}</span>
</element>
</template>
I:このような何かを書くこと
<template>
<button if.bind="!isLinkBtn">
<span class="btn-icon">${icon}</span>
<span class="btn-text">${contentText}</span>
</button>
<a if.bind="isLinkBtn">
<!--
The content is a 1:1 duplicate of the button above which should be prevented
somehow in order to keep the view DRY
-->
<span class="btn-icon">${icon}</span>
<span class="btn-text">${contentText}</span>
</a>
</template>
ことが可能です<compose view="${widget.type}-view.html"></compose>
で動的な構成を認識していますが、私の知る限り、これはデフォルトのHTML要素を作成することはできませんが、カスタムコンポーネントのみを作成することはできません。
私はエリックリーベンは、@processContent(function)
デコレータを使用して与えられたfunction
内のコンテンツを交換し、オーレリアはそれを処理できるようにtrue
を返すことが示唆アウレリアギッターにこの質問をしてきました。
残念ながら、実際にこれらの手順を実際に適用する方法はわかりませんし、ここでいくつかの代替アプローチや実際にこれを達成する方法の詳細を期待しています。
編集
私は、対応するfeature requestを作成しました。可能な解決法が提供されていても、私はこれを解決する簡単な方法を見たいと思っています;)
' processContent'が、この場合に役立つことはありませんが。 –