javascript - 是否可以创建一个强加 Angular 过滤器的 css 类?

标签 javascript html css angularjs

是否可以创建一个强加 Angular 过滤器的 css 类?

例如,我想让一个表格单元格显示一个值,该值始终右对齐,颜色为矢车菊蓝色,并使用 Angular 过滤器进行格式化(在本例中我将选择货币)。

我目前让它与以下 CSS 一起工作:

.money {
    text-align: right;
    color: #6495ed;
}

还有这个模板:

<td class="money">{{myContract.amountOfMoney | currency:default:0}}</td>

有没有办法缩短这个时间,以便可以通过 CSS 应用 CSS 和 Angular 过滤器?

最佳答案

如评论中所述,您可以使用 restrict: 'C' 创建货币指令。

这里唯一的技巧是使用 $timeout 来确保我们使用 element.text() 获得计算的表达式。

请查看下面的演示或此 fiddle .

angular.module('demoApp', [])
  .controller('MainController', function($scope) {
    $scope.myContract = {
      amountOfMoney: 100
    };
  })
  .directive('money', function(currencyFilter, $timeout) {
    return {
      restrict: 'C',
      link: function(scope, element, attrs) {
        $timeout(function() { //timeout to ensure that the expression is evaluated
          var value = element.text();
          //console.log(currencyFilter(parseFloat(value) || 0, undefined, 0));
          element.text(currencyFilter(parseFloat(value), undefined, 0));
        }, 0);
      }
    };
  });
.money {
  text-align: right;
  color: #6495ed;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<div ng-app="demoApp" ng-controller="MainController">
  <p>{{myContract.amountOfMoney | currency:default:0}}</p>
  <p class="money">{{myContract.amountOfMoney}}</p>
</div>

关于javascript - 是否可以创建一个强加 Angular 过滤器的 css 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365229/

相关文章:

javascript - 我可以重置 jQuery 粘性导航栏功能吗?

c# - 在 C# 中为图像添加页脚

html - 如何让子菜单在没有指定宽度的情况下水平换行

javascript - 如何将 `loading...` 图标添加到 jQuery UI 的自动完成小部件

javascript - 将 react-redux 与基于事件的第 3 方库一起使用的最佳方式是什么

html - Chrome 和 Camino 中的奇怪 div 行为,但在 Safari 中没有

javascript - Fullcalendar 获取位置或获取资源

javascript - jQuery 返回错误的文档高度

html - Chrome - :active causes bottom padding to disappear 上的框阴影

javascript - 检查 onPageFinished 是否完成