我正在学习AngularJS并参与教程。
我正在修改教程示例过滤器以返回一些字符串:
angular.module('phonecatFilters', []).filter('checkmark', function() {
return function(input) {
return input ? 'true-class' : 'false-class';
};
});
我想在ngClass
中使用它,如下所示:
{{phone.trueVal | checkmark}} <i ng-class="{{phone.trueVal | checkmark }}"></i>
{{phone.falseVal | checkmark}} <i ng-class="{{phone.falseVal | checkmark }}"></i>
结果:
true-class <i class="false-class">
false-class <i class="false-class">
现在..而对于简单的视图,过滤器按预期工作..为什么它对ngClass不起作用?在ngClass
(以及其他类似ngSrc
等)中使用过滤值的正确方法是什么。
答案 0 :(得分:23)
在您的情况下,您应该使用class
而不是ng-class
,因为 直接在html 上呈现类名而不进行评估。< / p>
<div ng-controller="MyCtrl">
<i class="{{phone.trueVal | checkmark }}">{{phone.trueVal | checkmark}}</i>
<i class="{{phone.falseVal | checkmark }}">{{phone.falseVal | checkmark}}</i>
</div>
答案 1 :(得分:14)
这对我有用。只是盯着AngularJS所以我不确定该功能是否作为更新的一部分添加,因为这个问题已经有几年了。
ng-class="{ 'has-error': (login.form | validField:'username') }"
添加括号后,它有效。