Knockout - 如果日期大于,则显示元素

时间:2013-09-23 09:10:37

标签: knockout.js

我想要显示如下内容:

<tr>
    <td colspan="2" class="center">
        <a data-bind="attr: { href: 'https://scyk.pl/Account/UserProfile?user=' + peer}, text: peer"></a>
    </td>
</tr>

但我希望仅当tr(我的模型的属性)大于date时才会显示整个(current date-15min)元素。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

tr元素包含在使用virtual element绑定的if中:

<!-- ko if: date().getTime() > new Date().getTime() - 900000 -->
    <tr>
        ...
    </tr>
<!-- /ko -->

上述工作,但进行日期计算的表达式应该是视图模型的一部分。更简洁的方法是将计算器添加到视图模型中:

model.isDateAfterFifteenMinutesAgo = ko.computed(function () {
    return model.date().getTime() > new Date().getTime() - 900000;
});

然后在HTML中使用<!-- ko if: isDateAfterFifteenMinutesAgo -->