我正在創建包含material-components-web,cards specifically的Aurelia組件,現在想知道實現多個內容節(操作等)的正確方法是什麼。Aurelia有條件地包裝組件中的插槽
插槽似乎是正確的選擇,但我不能只在任何時候將模板上的動作div,但只有在任何動作實際存在的情況下。
簡而言之,我需要檢查組件模板中是否定義了插槽。
<template>
<div class="card">
<div class="content">
<slot></slot>
</div>
<!-- somehow check here if the slot has been defined -->
<div class="actions">
<slot name="actions"></slot>
</div>
</div>
</template>
完美的作品,非常酷。我很驚訝在這個主題上找不到任何東西,每個人似乎都使用自定義屬性來裝飾類,這看起來像這樣簡單的東西的矯枉過正。 – marekpw
後續問題,可能無關:你知道爲什麼[this](https://gist.run/?id=3e6875bac99fb2fb984039b88a873049)不起作用嗎?我試圖將一些邏輯抽象到視圖模型,因爲我將在許多地方檢查定義的插槽。在attach()發生之前,似乎slotDefined()方法只被調用一次。我也嘗試使用@computedFrom('$ slots')裝飾器,但現在組件根本不渲染(沒有錯誤),只有定義的插槽呈現。 – marekpw
現在就用[this hack](https://gist.run/?id=abf47aa5d72feaeed7bced74f2f6f4)。看來.bind無法調用函數,所以我必須使用getter來解決它。一切都很完美,再次感謝你的幫助。 – marekpw