2016-05-23 54 views
2

我有一個自定義元素,它定義了具有各種可綁定默認選項的通用UI構件框架,用於爲主體添加一些其他「工具欄」選項和通用<content />的模板部件。Aurelia中的嵌套自定義元素未按預期方式呈現

然後我有一些自定義元素的一些管理功能。後一個元素應該表現爲一個小部件,它也有各種模板部分。

但是,如果我嘗試將以前的Widget元素嵌入到後一個管理元素中,則不會呈現任何內容。

下面是一個簡化的例子:

例如塊(窗口小部件)元件

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

例如列表(管理員)元件

<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> 

包含頁面

<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> 

我希望的,結果是:

<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> 

但相反,它給了我:

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

所以也沒有呈現列表的內容或更換模板一部分在包含頁面中指定。但是另外,列表的模板部分的默認內容實際上在列表後呈現爲

這是預期的行爲?如果是這樣,是否有任何方法可以保留admin/list元素中的widget/block元素的使用,但要讓它以我希望的方式呈現?

回答

0

我主要是複製/粘貼this question我的答案在這裏,但這裏有雲:

我首先要說的內容投影在奧裏利亞RC1徹底改變(和好)前言這個答案。我們正在轉向基於插槽的內容投影以匹配最新版本的shadow DOM規範。該規範比Aurelia目前的基於選擇器的設置(基於Shadow DOM規範的早期版本)功能強大得多。這是我們現在和Aurelia全部1.0之間計劃的唯一突破性變化。

所以我告訴你的一切很快就會過時。

與此同時,自定義元素視圖中的元素需要位於模板的根目錄下。至於爲什麼Aurelia採取這種方式,這是一個bug :-)它已被修復在新的implementation

我們剛剛發佈了blog post關於新的插槽實施,如果你想看看事情會如何工作。

+0

太好了。我在這裏發佈後不久,我就看到那篇文章到達博客!會給它一個旋風 –

相關問題