Knockout.js 敲除无容器语法是一种气味吗?

Knockout.js 敲除无容器语法是一种气味吗?,knockout.js,Knockout.js,我觉得用评论来描述视图的行为是一种气味。因此,这并不意味着任何时候你看到它,它是坏的,它只是可疑。如果可以的话,我尽量避免使用它。但我经常发现避免它会降低代码的可读性 以下是最常见的情况: <div data-bind="visible: taskIsAssigned, if: taskIsAssigned" class="assignee"> Assigned to: <span data-bind="text: assignee"></span> &l

我觉得用评论来描述视图的行为是一种气味。因此,这并不意味着任何时候你看到它,它是坏的,它只是可疑。如果可以的话,我尽量避免使用它。但我经常发现避免它会降低代码的可读性

以下是最常见的情况:

<div data-bind="visible: taskIsAssigned, if: taskIsAssigned" class="assignee">
  Assigned to: <span data-bind="text: assignee"></span>
</div>

<!-- ko if: taskIsAssigned -->
<div class="assignee">
  Assigned to: <span data-bind="text: assignee"></span>
</div>
<!-- /ko -->

分配给:
分配给:
我正在寻找一个建议或经验法则,或者希望找到一个比上面两个更好的解决方案


我期望
if
绑定应该隐藏它所修饰的元素,但它没有。也许我应该调整
if
或者添加一个提供这种行为的“
可见\u if
”绑定?

剔除无容器语法有两个主要问题

  • 用于指导实际行为的注释:这可能在缩小过程中丢失
  • IDE缩进通常不考虑这些注释,因此如果您使用多个级别的无容器语法,则很容易丢失这些注释

这就是为什么只有在必要的情况下才应该保留它的原因(
  • 标记浮现在脑海中)。

    从我对它的小小体验来看,如果你想保持HTML代码干净,我会说KO不是那么好。使用HTML注释作为说明的一部分是我遇到的问题之一。任何人都不应该担心删除注释会破坏代码。作为旁注,请注意
    是错误的语法,应将其写入
    。您将它放在示例中的方式是开发人员工具显示它的常用方式,但这只是他们表示dom的空元素的方式。避免在knockout中使用注释!!!有一次我很难弄清楚,当我通过移动数据连接在线时,我的应用程序无法工作。似乎有些提供商优化html(即删除注释)以提高性能您的示例是一个糟糕的示例。在该示例中,没有必要使用无容器。当您不想仅仅为了方便数据绑定而向dom添加元素时,应该使用无容器