以下代码工作正常..
<div class="student" data-bind="text: gender()+'-'+name()"></div>
但是,当我执行以下操作时,不会考虑if子句,并且所有项目都附加了[M] ..
<!-- ko if: gender()=="male" -->
<div class="student" data-bind="text: '[M]'+name()"></div>
<!-- /ko -->
真心感谢任何帮助。
由于
答案 0 :(得分:4)
我认为docs中的这些信息是相关的
注意:可排序绑定假定子“模板”具有单个容器元素。您不能在模板的顶层使用无容器绑定(基于注释)绑定,因为jQuery可拖动/可排序功能需要一个元素来操作。
我怀疑这会达到预期的效果
<div class="seats" data-bind="sortable: { data: students, allowDrop: $root.isTableFull }">
<div class="student" data-bind="visible: gender() == 'male', text: '[M]'+name()"></div>
<div class="student" data-bind="visible: gender() == 'female', text: '[F]'+name()"></div>
</div>
答案 1 :(得分:2)
我不确定为什么IF语句没有直接工作,但你可以通过删除IF语句并在元素上放置可见来直观地实现同样的事情。
http://jsfiddle.net/UdXr4/770/
<div class="student" data-bind="visible:gender() =='male', text: '[M]'+name()"></div>
在黑暗中拍摄但我认为你也会想要女性......这将是一个更好的方法来实现它..
http://jsfiddle.net/UdXr4/772/
<div class="student" data-bind="text: (gender() == 'male' ? '[M]':'[F]') + name()"></div>