Containerelement bei Verwendung der Knockout-Komponente ersetzen
Gibt es eine Möglichkeit, ein @ zu konfiguriereKnockout component zuersetze das Containerelement, anstatt seinen Inhalt im Containerelement zu verschachteln?
Zum Beispiel, wenn ich eine benutzerdefinierte Komponente als @ registriert hamy-custom-element
mit folgender Vorlage:
<tr>
<p>Hello world!</p>
</tr>
Ist es möglich, die Komponente wie folgt zu verwenden:
<table>
<tbody>
<my-custom-element></my-custom-element>
</tbody>
</table>
Und das Endprodukt lautet:
<table>
<tbody>
<tr>
<p>Hello world!</p>
</tr>
</tbody>
</table>
Anstelle dessen: (wie Knockout Komponenten standardmäßig rendert)
<table>
<tbody>
<my-custom-element>
<tr>
<p>Hello world!</p>
</tr>
</my-custom-element>
</tbody>
</table>
Basierend auf der Antwort auf diese Frage, es scheint, dass diese Funktionalität in die Templating-Engine integriert ist, von der ich annehme, dass sie auch beim Rendern von Komponentenvorlagen verwendet wird.
Gibt es eine Möglichkeit anzugeben, dass eine Komponente mit einem @ gerendert werden solrenderMode
vonreplaceNode
?
Mir ist die Syntax "Virtuelles Element" bekannt, mit der Komponenten in einem HTML-Kommentar definiert werden können:
<table>
<tbody>
<!--ko component { name: 'my-custom-element' }--><!--/ko-->
</tbody>
</table>
Aber ich mag diese Syntax wirklich nicht - das Schreiben von echtem Code in einen Kommentar fühlt sich wie ein schmutziger, schmutziger Hack an.