我经常发现自己在基于KO的HTML模板中使用这个惯用法:
<!-- ko if: isEdit -->
<td><input type="text" name="email" data-bind="value: email" /></td>
<!-- /ko -->
<!-- ko ifnot: isEdit -->
<td data-bind="text: email"></td>
<!-- /ko -->
在KO中,有没有更好/更干净的方法来进行条件处理?还是有比仅使用传统的if-else构造更好的方法?
另外,我只想指出某些版本的Internet Explorer(IE 8/9)无法正确解析上述示例。请参阅此SO问题以获取更多信息。快速总结是,不要在表格标签内使用注释(虚拟绑定)来支持IE。使用tbody
代替:
<tbody data-bind="if: display"><tr><td>hello</td></tr></tbody>
任何关注此内容的人都可能希望跟踪github.com/knockout/knockout/issues/962
—
Brian M. Hunt