敲门时<! - ko - >绑定和可见绑定有什么区别?

Vic*_*cky 4 knockout.js

ko <!--ko-->binding和data-bind ="visible:sometext"绑定

两种绑定都执行相同的操作,哪一种是有效的,哪一种是最好的

Dam*_*ien 6

虚拟元素:

  • 不能用来改变元素的样式,因为没有绑定的dom元素.

例如:

<!-- ko visible: prop--><!-- /ko -->
Run Code Online (Sandbox Code Playgroud)
  • 当您无法添加额外元素时,控制流量非常有用:

例如:

<table>
    <tbody>
        <tr><td></td></tr>
        <!-- ko if: cond -->
            <tr><td>Optionnal line </td></tr>
         <!-- /ko  -->
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

实际要素data-bind:

  • 可用于控制流(if,foreach,with)和修改元素属性(样式,id,类等).


sro*_*oes 5

<!-- ko [binding] -->允许您绑定到一个虚拟元素

data-bind="[binding]" 是常规绑定,只能应用于实际元素。

不同之处在于第一个可以使用而无需创建元素:

<ul>
    <li class="heading">My heading</li>
    <!-- ko foreach: items -->
        <li data-bind="text: $data"></li>
    <!-- /ko -->
</ul>
Run Code Online (Sandbox Code Playgroud)

请注意,并非每个绑定处理程序都可以应用于虚拟元素:

自定义绑定也可以与虚拟元素一起使用,但要启用此功能,您必须使用 ko.virtualElements.allowedBindings API 明确告诉 Knockout 您的绑定理解虚拟元素。