what is the difference between <!--ko--> bin

2019-06-25 12:27发布

ko <!--ko--> binding and data-bind="visible:sometext" binding

Both binding did the same operation and which one is efficient for use and which one is best

标签: knockout.js
2条回答
Ridiculous、
2楼-- · 2019-06-25 13:08

<!-- ko [binding] --> allows you to bind to an virtual element.

data-bind="[binding]" is a regular binding and can only be applied to actual elements.

The difference is that the first can be used without having to create an element:

<ul>
    <li class="heading">My heading</li>
    <!-- ko foreach: items -->
        <li data-bind="text: $data"></li>
    <!-- /ko -->
</ul>

Do note that not every binding handler can be applied to an virtual element:

Custom bindings can work with virtual elements too, but to enable this, you must explicitly tell Knockout that your binding understands virtual elements, by using the ko.virtualElements.allowedBindings API.

查看更多
劳资没心,怎么记你
3楼-- · 2019-06-25 13:14

Virtual elements :

  • Can't be use to change the style of the element, because there is no bound dom element.

e.g. :

<!-- ko visible: prop--><!-- /ko -->
  • Are useful to control flow when you can't add an extra element :

e.g. :

<table>
    <tbody>
        <tr><td></td></tr>
        <!-- ko if: cond -->
            <tr><td>Optionnal line </td></tr>
         <!-- /ko  -->
    </tbody>
</table>

Actual elements data-bind :

  • Can be used to control flow (if, foreach, with) and to modify the element attributes (style, id, class, etc).
查看更多
登录 后发表回答