我有一个名为late
的课程,我想有条件地申请:
<div ng-class="late: isLate"></div>
我有一个名为isLate
的指令,它执行计算并返回一个布尔值。将这两者联系起来的正确方法是什么?我搜索了指令文档,没有找到任何可以做到这一点。也许使用指令不是正确的方法吗?
答案 0 :(得分:3)
首先将计算从指令移到范围:
$scope.isLate = function() {
// make calculations here and return bool value
}
然后将对象传递给ng-class指令:
<div ng-class="{late: isLate()}"></div>
对于具有truthy值的对象的每个键值对,相应的键用作类名。 (来自ngClass docs)
答案 1 :(得分:0)
对于ng-class,您需要提供一个用作映射的对象,其类名映射到某个表达式,该表达式的计算结果为布尔条件。 (存在其他用例,但这与您正在显示的内容最接近)。
http://docs.angularjs.org/api/ng/directive/ngClass
因此,假设isLate是控制器范围的布尔值
,这样的事情就可以了<div ng-class="{'late':isLate}"></div>
我不知道指令是正确的方法,因为它们通常用于添加行为和DOM操作。或者更确切地说,我并不认为在ng-class中使用指令是正确的方法,尽管可能只有一个自定义指令可以用作DOM元素的属性。