我在客户端使用Knockoutjs和服务器端模板引擎(即Twirl)。 我正在处理的代码如下所示(*简化)
<div id="outer">
@if(some condition) {
<ul class="type-a">
<li>item1</li>
:
} else {
<ul class="type-b">
<li>item2</li>
:
}
@if(another condition) {
<-- ko if: isAlwaysFalse -->
<li>item3</li>
<-- /ko -->
}
<-- ko if: isAlwaysFalse -->
<li>item4</li>
<-- /ko -->
</ul>
</div>
我要这样做的是从其父项(item3
元素)中删除(隐藏)item4
和ul
,但是呈现的HTML最终如下所示假设为some condition === true
和another condition === true
。
<div id="outer">
<ul class="type-a">
<-- ko if: isAlwaysFalse -->
<-- /ko -->
<-- ko if: isAlwaysFalse -->
<-- /ko -->
<li>item1</li>
<li>item3</li>
<li>item4</li>
</ul>
</div>
如果条件不生效并且为什么移至父元素ul
的正下方,为什么会剔除?
答案 0 :(得分:0)
您错过了添加正确的敲除js虚拟元素语法的操作。
http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html