在敲门js中对<! - ko if:$ parent.name == name - >感到困惑

blu*_*sky 18 javascript knockout.js

我遇到过这个Knockout代码,我对以下代码的执行情况感到困惑:

   <!-- ko if: $parent.name == name -->
   <a data-bind='text: name'></a> 
   <!-- /ko -->
Run Code Online (Sandbox Code Playgroud)

这段代码不应该被解释为评论吗?

阅读文档:
http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html
这看起来像一个自定义绑定?

War*_*0ck 28

这是一个淘汰条件评论.仅当代码验证为true时,才会执行注释块内的HTML.Knockout可以为您阅读和处理此评论.你不需要做任何特别的事情.只需提供条件并确保您引用的变量确实存在.然后坐下来让淘汰赛做其余的事情.

  • 这真是太棒了.. Knockout可以处理评论.. :) (8认同)
  • 我花了半天时间来了解使用此评论功能的页面是如何工作的.淘汰新手非常困惑. (3认同)

Jua*_*mpa 8

这不是自定义绑定.你遇到的是淘汰赛的文档称之为"虚拟元素",它是一个应用于一段代码而不是一个元素的绑定.如果你想有条件地评估(即绑定到你的viewmodel)DOM的一部分,你可以将它放在带有if绑定的div中,或者将它放在像这样的注释中.

HTML注释是DOM的一部分,因此没有什么可以阻止检索和解释它们.