淘汰无容器语法是一种气味吗?

时间:2015-08-31 12:53:38

标签: knockout.js

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

以下是最常见的案例:

<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或添加&#34; visible_if&#34;提供这种行为的绑定?

1 个答案:

答案 0 :(得分:0)

knockout containerless语法有两个主要问题

  • 评论用于指导实际行为:这可能会在缩小过程中丢失
  • 这些评论通常不会在IDE缩进中加以考虑,因此如果您使用多级无容器语法,则很容易迷失see this example

这就是为什么只有在必要的情况下才能保留它(<select><li>标记。