【问题标题】:data-bind=" compose:{}" vs <!-- ko compose --> <!-- /ko -->data-bind=" compose:{}" vs <!-- ko compose --> <!-- /ko -->
【发布时间】:2017-06-17 00:57:05
【问题描述】:

我在这里阅读(文档) http://durandaljs.com/documentation/Using-Composition.html

我可以在这两种组合上找到显着的差异,而不是有一个内部容器或没有。

第一个:

<div data-bind="compose: {
            view: 'Box',
            model: 'Box',
            activationData: {
                hasStar: true
            }
        }"></div>

<!-- ko compose: ________ --> <!-- /ko -->

(实际上它里面可能有东西)

他们还谈到了 require 的用法。

谁有很好的区别?或者我应该什么时候使用每个?

【问题讨论】:

    标签: knockout.js data-binding durandal composition


    【解决方案1】:

    Knockout 将第二个绑定语法&lt;!-- ko ... --&gt; 命名为一个虚拟元素

    它们的唯一目的是让您无需更改标记即可创建数据绑定。

    使用虚拟绑定,例如,您可以这样做:

    <ul>
      <li class="category">Fruits</li>
      <!-- ko foreach: fruits -->
      <li data-bind="text: name"></li>
      <!-- /ko -->
    </ul>
    

    可以像这样渲染 HTML:

    <ul>
      <li class="category">Fruits</li>
      <li>Banana</li>
      <li>Orange</li>
      <li>Mango</li>
    </ul>
    

    所以简而言之,如果您没有逻辑语义 HTML 元素来放置绑定,则使用 虚拟元素绑定。如果您的局部视图周围已经有某种包装器,我'd 建议使用数据绑定属性

    【讨论】:

    • 有一些关于这种行为的文件吗?还是什么?
    • 在自定义绑定的淘汰文档中有一个关于虚拟绑定的部分:knockoutjs.com/documentation/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2020-09-14
    • 2015-04-03
    • 1970-01-01
    • 2018-12-18
    • 2016-08-22
    • 2016-07-10
    相关资源
    最近更新 更多