我遇到过这个Knockout代码,我对以下代码的执行情况感到困惑:
<!-- ko if: $parent.name == name -->
<a data-bind='text: name'></a>
<!-- /ko -->
此代码不应被解释为评论吗?
阅读文档:
http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html
这看起来像一个自定义绑定?
答案 0 :(得分:28)
这是一个淘汰条件评论。仅当代码验证为true时,才会执行注释块内的HTML。 Knockout可以为您阅读和处理此评论。你不需要做任何特别的事情。只需提供条件并确保您引用的变量确实存在。然后坐下来让淘汰赛做其余的事。
答案 1 :(得分:8)
这不是自定义绑定。你遇到的是knockout's documentation所谓的“虚拟元素”,它是一个应用于一段代码而不是一个元素的绑定。如果你想有条件地评估(即绑定到你的viewmodel)DOM的一部分你可以把它放在一个带有if
绑定的div中,或者把它放在像这样的注释中。
HTML注释是DOM的一部分,所以没有什么可以阻止它们检索和解释它们。