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

时间:2015-12-18 23:02:19

标签: javascript html css angularjs

是否可以创建一个强制使用角度过滤器的css类?

例如,我希望表格单元格显示一个值,该值始终为右对齐,彩色矢车菊蓝色,并使用角度过滤器进行格式化(在这种情况下,我将选择货币) )。

我目前使用以下CSS:

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

这个模板:

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

有没有办法缩短这个,所以CSS和角度过滤器都可以通过CSS应用?

1 个答案:

答案 0 :(得分:1)

如评论中所述,您可以使用where创建货币指令。

此处唯一的技巧是使用restrict: 'C'来确保我们使用$timeout获取评估的表达式。

请查看下面的演示或fiddle

&#13;
&#13;
element.text()
&#13;
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);
      }
    };
  });
&#13;
.money {
  text-align: right;
  color: #6495ed;
}
&#13;
&#13;
&#13;