javascript - 使用 jQuery 脚本将 CSS 样式应用到 angularjs 表达式

标签 javascript jquery angularjs

我很困惑,我有一个 jquery 脚本,如果它在 html 表中发现负数,则将文本颜色更改为红色。

   console.log("reading Script");
    $('td:nth-child(3)').each(function() {
      var txt = $(this).text();

    if (txt.indexOf('-') > -1) {
       $(this).css("color", "red");
       console.log("True: " + txt);
    } else {
       $(this).css("color", "green");
       console.log("False: " + txt);
    }
});

此脚本在一个示例中完美运行,其中我将“ng-repeat d in data”与此表达式 {{d.category}} 一起使用,但我有第二个示例,它不起作用,我使用相同的脚本,但 Angular 表达式不同,因为我读取的 JSON 结构不同,ng-repeat =“PostResponse.result中的数据”,我的 Angular 表达式像这样 {{data.merchMetrics .category}} 在这里我得到的所有值都是绿色的,甚至是负数,所以我不明白它,因为第一个例子是完全相同的,唯一不同的是结构数据。

即使控制台日志的工作方式也不同,在我的第一个示例中,日志记录如下:

  • 正确:-4
  • 错误 10

这没问题,但在第二个示例中我在控制台中得到了这个:

  • 错误:{{data.merchMetrics.category}}

那么,有什么想法吗?

最佳答案

您在 Angular 应用程序中使用 jQuery 编码实践,这会让您头疼 - 这一次是因为这些实践违背了 Angular 精神,而且还因为您不会获得 Angular 的好处。

很可能您遇到了计时问题,在第一种情况下,Angular 已经用值替换了您的模板表达式,而在第二种情况下则没有。你不应该像这样操作 DOM。 Angular 开发中最重要的部分之一是:您不应该从 DOM 解析回数据,永远

您应该使用 ng-class 进行条件格式化。

<td ng-class="{ positive: data.merchMetrics.category < 0, negative: data.merchMetrics.category >= 0}">{{data.merchMetrics.category}}</td>

然后定义两个 CSS 类,positivenegative,字体颜色分别为 redgreen .

可以在此处以及其他资源中找到更多关于为什么 Angular 的使用方式应与 jQuery 不同的背景信息:

关于javascript - 使用 jQuery 脚本将 CSS 样式应用到 angularjs 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616152/

相关文章:

javascript - 单击按钮临时更改 div 背景颜色,而不是按预期永久更改

javascript - 使用 Jasmine 测试的 ngTable 中的排序功能

javascript - $interval 发生太多次

jquery - 下拉菜单外观问题

jquery - 仅在页面向下滚动时增加进度条

javascript - d3 SVG 中的 Angular 指令

javascript - 在类函数中访问 `this` 未定义

javascript - D3 瞄准/控制特定弧

javascript - 在 Angular 2 typescript 中获取模态元素

javascript - 无法让 JQuery 附加一些 html 和值