【问题标题】:Conditional formatting of table with angular and javascript带有角度和javascript的表格的条件格式
【发布时间】:2014-09-09 23:07:13
【问题描述】:

当 lastPingedTimeAsString 达到 5 分钟标记并将文本颜色从绿色更改为红色,反之亦然时,我将如何调整下表。

<form name="myform" data-ng-submit="submit()" data-ng-controller="Ctrl" id="submitForm">
        <p data-ng-repeat="beat in beats">
            Station ID: {{ beat.stationID }}
            Uptime: {{ beat.lastPingedAsString | date : 'mediumTime'}}
        </p>
        <input type="submit" id="submit" value="Submit" />
    </form>

我在这里查看了几页,描述了如何按类使用格式,但没有得到正确的结果。

编辑: 为了更清楚,我需要知道如何创建确定 5 分钟已经过去并将结果从绿色变为红色的函数。很抱歉造成混乱。

编辑2: 这是原始示例(根本没有格式化)。我现在将集成新代码。

Station ID: default Uptime: Jul 18 2014 2:09PM

【问题讨论】:

  • 我修改了答案。

标签: javascript html css json angularjs


【解决方案1】:

让我们在控制器作用域中添加一个函数:

$scope.diffMins = function(pingDate) {
  var now = new Date();
  var diffMs = (now-pingDate);
  return Math.round(((diffMs % 86400000) % 3600000) / 60000);
}

<form name="myform" data-ng-submit="submit()" data-ng-controller="Ctrl" id="submitForm">
    <p data-ng-repeat="beat in beats" ng-class="{longtime:diffMins(beat.lastPinged)>=5}">
        Station ID: {{ beat.stationID }}
        Uptime: {{ beat.lastPingedAsString | date : 'mediumTime'}}
    </p>
    <input type="submit" id="submit" value="Submit" />
</form>

css:.longtime {color: red}

这假设您有一个 beat.lastPinged 作为 javascript 日期。您也可以将业务逻辑放在 diffMins 中,然后返回 true 或 false。

还有一个ng-style 与 css 样式属性做类似的事情。

【讨论】:

  • lastPingedasString 是来自 lastPinged 的​​字符串(数据库的另一个成员是 DateTime,但出现了一种奇怪的格式,例如 Date(234505628374550-0400) 所以不幸的是,这对我不起作用。
  • 您没有在问题的任何地方解释某人如何确定 5 分钟。这是您的问题还是关于有条件地应用 Angular 类?
  • 请确保并添加lastPingedAsStringlastPinged的示例值
  • 我在原始帖子中添加了 stationId 和 lastPingedAsString,lastPinged 本身返回了一个变量 datetime,其格式如下“Date(234505628374550-0400)”
  • 是字符串吗? lastPingedAsString 格式是什么?这些日期是如何生成的?您能否 console.log/json.stringify 一个 beat 实例并将其添加到您的问题中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多