2016-05-23 2 views
2

Ich habe ein benutzerdefiniertes Element, das einen universellen UI-Widgetframe mit verschiedenen bindefähigen Standardoptionen, einen Schablonenteil zum Hinzufügen einiger zusätzlicher 'Werkzeugleisten' -Optionen und den allgemeinen Zweck <content /> für den Text definiert .Verschachtelte benutzerdefinierte Elemente in Aurelia, die nicht wie erwartet gerendert werden

Ich habe dann ein anderes benutzerdefiniertes Element für einige Verwaltungsfunktionen. Das letztere Element sollte sich selbst als Widget darstellen, und es hat auch verschiedene Schablonenteile.

Wenn ich jedoch versuche, das frühere Widget-Element in das letzte Verwaltungselement einzubetten, wird keiner der Inhalte gerendert.

Hier ist ein vereinfachtes Beispiel:

eg-Block (Widget) Element

<template> 
    <div style="padding: 10px; background-color: #bbffff"> 
    <content></content> 
    </div> 
</template> 

eg-Liste (Admin) Element

<template> 
    <require from="./eg-block"></require> 
    <eg-block> 
    <div>Start of List</div> 
    <content></content> 
    <template replaceable part="list-part">Default List Part</template> 
    <div>End of List</div> 
    </eg-block> 
</template> 

Containing Seite

<template> 
    <require from="./eg-list"></require> 
    <eg-list> 
    <template replace-part="list-part">Replaced List Part content</template> 
    <div>Replaced regular content</div> 
    </eg-list> 
</template> 

ich die Ergebnisse, dass hatte gehofft, dass zu sein:

<div style="padding: 10px; background-color: #bbffff"> 
    <div>Start of List</div> 
    <div>Replaced regular content</div> 
    <div>Replaced List Part content</div> 
    <div>End of List</div> 
</div> 

Aber stattdessen gibt es mir:

<div style="padding: 10px; background-color: #bbffff"> 
    <div>Start of List</div> 
    <div>End of List</div> 
    <div>Default List Part</div> 
</div> 

So ist es nicht machen den Inhalt der Liste oder ersetzt Vorlage Teil, ist in der enthaltenden Seite angegeben. Aber zusätzlich wird der Standardinhalt des Schablonenteils der Liste tatsächlich nach der Liste gerendert.

Ist dies das erwartete Verhalten? Und wenn ja, gibt es eine Möglichkeit, das Element widget/block im Element admin/list zu verwenden, aber so zu gestalten, wie ich es mir erhofft habe?

Antwort

0

Ich bin meistens Kopieren/Einfügen meiner Antwort von this question hier, aber hier geht:

Lassen Sie mich diese Antwort Vorwort mit den Worten, dass der Inhalt Projektion vollständig verändert (und zum Besseren) in Aurelia RC1. Wir bewegen uns auf Slot-basierte Content-Projektion, um mit der neuesten Version der Shadow-DOM-Spezifikationen übereinzustimmen. Diese Spezifikation ist viel leistungsfähiger als das Selektor-basierte Setup, das Aurelia aktuell hat (das auf einer früheren Version der Shadow-DOM-Spezifikation basiert). Dies ist die einzige bahnbrechende Änderung, die wir zwischen jetzt und der vollen 1.0 von Aurelia geplant haben.

Also alles, was ich dir sage, wird sehr bald veraltet sein.

In der Zwischenzeit muss sich das Element in Ihrer benutzerdefinierten Elementansicht im Stammverzeichnis der Vorlage befinden. Warum Aurelia so handelt, nun ist es ein bug :-) Es wurde in der neuen implementation behoben.

Wir haben gerade eine blog post in Bezug auf die neue Slot-Implementierung veröffentlicht, wenn Sie sehen möchten, wie die Dinge funktionieren.

+0

Großartig. Ich habe gesehen, dass Post nicht lange nachdem ich hier gepostet habe, im Blog erscheint! Wird es einen Wirbel geben –