1
<!-- ko if: ItemType() > 0 -->
  <div ...   </div>
<!-- /ko -->
<!-- ko else if: OfferId() != "" -->
  <div ...      </div>
<!-- /ko -->

ItemType 和 OfferId 是对象中的属性,由

public string OfferId { get; set; }
public int ItemType { get; set; }

p.ItemType = ko.observable(item.ItemType);
p.OfferId = ko.observable(item.OfferId);

第一个 if 语句有效,但 else if 即使 ItemType 为 0 且 OfferId 也有效。为什么?

4

2 回答 2

2

您没有在冒号前输入 javascript。这是淘汰赛中绑定的名称。淘汰赛没有else if约束力。

你需要做:

<!-- ko if: ItemType() > 0 -->
    <div ...   </div>
<!-- /ko -->
<!-- ko if: ItemType() <= 0 && OfferId() != "" -->
  <div ...      </div>
<!-- /ko -->

有关绑定的完整列表,请参阅http://knockoutjs.com的左栏

“控制流”部分具有if绑定 - no else if

于 2012-12-04T11:35:34.187 回答
0

删除第二个语句中的 else 。据我所知,如果在淘汰赛中绑定没有别的。

<!-- ko if: OfferId() != "" && ItemType() == 0 -->
  <div ...      </div>
<!-- /ko -->
于 2012-12-04T11:34:21.723 回答