如果 $root 中的某些 属性 为空,如何防止创建 <span> 元素?

How do I prevent <span> element from getting created if certain property in $root is null?

我在 <span> 元素中显示一些文本,看起来像这样

<span data-bind="text: $root.participants()[_propkey].Currency"></span>

root.participants()[_propkey].Currency 为空时,我在页面上得到一个空的 space。

如果 root.participants()[_propkey].Currency 为 null

,我该如何防止创建此跨度

您可以使用 virtual elements and the if binding 来实现您的目标

var vm = {
  Currency : ko.observable()
};

ko.applyBindings(vm);
span {background-color: cornflowerblue}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
Currency span 
<!-- ko if: Currency -->
<span data-bind="text: Currency"></span>
<!-- /ko -->
is here
<br />

Test: <input data-bind="textInput: Currency">