拥有以下模板,但它不会按预期呈现。有些淘汰出局的控制流程。 name 属性应该在 div 中呈现到两个 if 语句之间,但它不会。我错过了什么?
<!-- ko foreach: userAddresses -->
<div data-bind="text: name"></div> // this prints correctly
<!-- ko if: shouldStartNewRow($index) -->
<div class="row">
<!-- /ko -->
<div class="col-xs-4 text-left"><div data-bind="text: name"></div></div> // nothing prints here
<!-- ko if: shouldStartNewRow($index) -->
</div>
<!-- /ko -->
<!-- /ko -->
这会产生:
<div>Joe blow</div>
<div class="row">
<div class="col-xs-4 text-left"><div> </div></div> // missing Joe blow here. it does produce a single space
</div>
更新
创建了fiddle来显示问题。似乎如果不能完全关闭条件块中的所有html,这会导致淘汰失败。
答案 0 :(得分:0)
试试
<div data-bind="text: $data.name"></div>
我认为你不能在评论if-block
中包含未公开的元素所以它应该看起来像:
<!-- ko foreach: userAddresses -->
<div data-bind="text: name"></div>
<!-- ko if: shouldStartNewRow($index) -->
<div class="row">
<div class="col-xs-4 text-left"><div data-bind="text: name"></div></div>
</div>
<!-- ko ifnot: shouldStartNewRow($index) -->
<div class="col-xs-4 text-left"><div data-bind="text: name"></div></div>
<!-- /ko -->
<!-- /ko -->