【问题标题】:Knockout - display element if date is greater than淘汰赛 - 如果日期大于则显示元素
【发布时间】:2013-09-28 03:07:57
【问题描述】:

我想显示如下内容:

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

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

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

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

    <!-- 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 中使用&lt;!-- ko if: isDateAfterFifteenMinutesAgo --&gt;

    【讨论】:

    • 请开始使用 ViewModel。它在那里是有原因的
    • 编辑建议使用视图模型。
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 2013-12-27
    • 2015-08-22
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多