javascript - Angular JS - 数字过滤器 - 负数时更改颜色

标签 javascript angularjs

我正在对函数的结果应用数字过滤器:

<tr class="text-center">
    <th class="text-center">{{monthCategoryTotalPredict = getCategoryMonthTotal(costDirection, month, category, "predict")  | currency:currencySymbol}}</th>
    <th class="text-center">{{monthCategoryTotalActual  = getCategoryMonthTotal(costDirection, month, category, "actual")   | currency:currencySymbol}}</th>
    <th class="text-center">{{calculateSurplus(monthCategoryTotalPredict, monthCategoryTotalActual)  | currency:currencySymbol}}</th>
</tr>

默认情况下,负数表示如下:(£230.00)。

我的目标是让它们也变成红色。我怎样才能在 Angular JS 中做到这一点?这可以成为过滤器的一部分吗?我可以覆盖过滤器以稍微修改它的默认行为而无需完全重写吗?

提前致谢!

最佳答案

为了改变 HTML 中文本的颜色,您需要修改它的容器元素。由于过滤器不知道该元素,您可以注入(inject)一个(坏主意),或者使用指令而不是过滤器。

在您的代码中放置一个函数实际上是一种糟糕的处理方式。它可能必须触发多次,并且肯定会搞砸您尝试的任何类型的排序。

<th class="text-center" ng-class="{ red: calculateSurplus(monthCategoryTotalPredict, monthCategoryTotalActual) < 0 }">{{calculateSurplus(monthCategoryTotalPredict, monthCategoryTotalActual)  | currency:currencySymbol}}</th>

老实说,我会提前进行这些计算,所以它看起来像这样。

<th class="text-center" ng-class="{ red: surplus < 0 }">{{surplus | currency:currencySymbol}}</th>

关于javascript - Angular JS - 数字过滤器 - 负数时更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844321/

相关文章:

javascript - 使用 angularjs 和 d3 的制图 TypeError : undefined is not a function

html - ng-repeat 退出 div

angularjs - 如何使用 ng-repeat 迭代 AngularJS 中的 map 条目

javascript - autoprefixer 针对 'last 2 versions' 的目标浏览器是什么?

javascript - 我如何获取从wasm(rust)到js的静态mut的地址?

javascript - 如何禁用 saveRow 事件 ui-grid

Angularjs - 如何将选定的单选按钮值传递给 Controller

javascript - Jquery - 翻转时淡入/淡出闪烁

JavaScript主细节面板-如何传递ajax对象?

javascript - 如何在angularjs中读取数组对象