20

このノックアウトコードに遭遇しましたが、以下のコードが何を実行しているかについて混乱しています。

   <!-- ko if: $parent.name == name -->
   <a data-bind='text: name'></a> 
   <!-- /ko -->

このコードはコメントとして解釈されるべきではありませんか?

ドキュメントを読む:http:
//knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html
これはカスタムバインディングのように見えますか?

4

2 に答える 2

32

ノックアウト条件付きコメントです。コメントブロック内のHTMLは、コードがtrueに検証された場合にのみ実行されます。Knockoutは、このコメントを読み取って処理できます。特別なことをする必要はありません。条件を指定するだけで、参照する変数が実際に存在することを確認してください。その後、座ってノックアウトに残りを任せます。

于 2013-01-29T20:05:58.770 に答える
10

カスタムバインディングではありません。あなたが遭遇したのは、ノックアウトのドキュメントが「仮想要素」と呼んでいるものです。これは、要素ではなくコードの一部に適用されるバインディングです。DOMの一部を条件付きで評価(つまり、ビューモデルにバインド)する場合は、バインドを使用してdiv内に配置するか、そのifようなコメント内に配置できます。

HTMLコメントはDOMの一部であるため、ノックアウトによるコメントの取得と解釈を妨げるものは何もありません。

于 2013-01-30T05:03:30.140 に答える