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

时间:2014-01-07 12:03:34

标签: knockout.js

ko <!--ko--> binding和data-bind =“visible:sometext”binding

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

2 个答案:

答案 0 :(得分:6)

虚拟元素:

  • 不能用于更改元素的样式,因为没有绑定的dom元素。

e.g。 :

<!-- ko visible: prop--><!-- /ko -->
  • 当您无法添加额外元素时,控制流程非常有用:

e.g。 :

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

实际元素data-bind

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

答案 1 :(得分:4)

<!-- ko [binding] -->允许您绑定到virtual element

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

不同之处在于第一个可以在不必创建元素的情况下使用:

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

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

  

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