假設我有以下HTML片段:如果使用綁定來刪除元素,可以使用knockout.js嗎?
<div class="group-of-things">
<span>thing #1</span>
<span>thing #2</span>
<span data-bind="if: showThing3">thing #3</span>
</div>
現在假設我有一個回合就group-of-things
的最後一個子角的CSS:
.group-of-things > *:last-child { border-radius: 0 5px 5px 0 }
的問題是,當showThing3
變成假的 - thing #3
被隱藏(內容被刪除),但包含(第三個)span
保留在DOM中,因此thing #2
確實不是得到圓角。
這可以通過使用無容器綁定(<!-- ko if: showThing3 -->
)來解決,但我想避免使用無容器綁定,因爲註釋被我無法控制的管道剝離。
也許可以調整CSS規則來僅考慮可見的孩子(例如,我可以使用css
綁定在隱藏元素上添加hidden
類)。
是否有一個更優雅的解決方案,實際上會從DOM中刪除span
問題?
這是一個很好的解決方案。我希望OOB'如果'會這樣做。我認爲'if'的當前語義是違反直覺的,許多開發人員期望'if'-ed元素將被控制,而不是元素的內容。 –