【问题标题】:Proper way to bind in tree structure with KnockoutJS使用 KnockoutJS 在树结构中绑定的正确方法
【发布时间】:2017-01-12 22:20:12
【问题描述】:

所以我有以下“目标/目标”结构:

<p data-bind="text: Title" class="commentContent">
  <a class="removeComment" data-bind="attr: {'data-commentId':Id}">x</a>
</p>

锚标记必须在段落中。现在,您可以想象,锚标记被段落内容覆盖。

绑定这些东西的正确方法是什么?

【问题讨论】:

    标签: javascript knockout.js data-binding binding


    【解决方案1】:

    您可以这样做,使用无容器语法来避免额外的 DOM 使您的页面混乱:

    ko.applyBindings({ Title: "My fancy title", Id: 42 });
    .commentContent { background: lime; padding: 10px; }
    a { color: red; font-weight: bold; background: blue; }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
    
    <p class="commentContent">
      <!-- ko text: Title --><!-- /ko -->
      <a class="removeComment" data-bind="attr: {'data-commentId':Id}">XanchorX</a>
    </p>

    您也可以不使用无容器语法,而是使用带有特定 classspan,如果您确实需要额外的标记来使用特定 CSS 定位它。

    【讨论】:

    • 圣鳄梨酱!我怎么能错过两种方法?!顺便说一句,您如何看待无容器?不知何故我不喜欢它,因为它非常不一致......
    • 我倾向于尽可能使用一个元素,因为它通常“有意义”,例如在您的场景中,您可能需要在某些时候使用该元素来定位带有一些 CSS 的帖子标题。但是无容器有其用途,例如在不允许其他元素的 option 元素中。
    • 有道理!我现在使用跨度标签。 :)
    猜你喜欢
    • 2015-09-17
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多