AngularJS使用返回的boolean from指令

时间:2014-03-15 19:37:15

标签: angularjs

我有一个名为late的课程,我想有条件地申请:

<div ng-class="late: isLate"></div>

我有一个名为isLate的指令,它执行计算并返回一个布尔值。将这两者联系起来的正确方法是什么?我搜索了指令文档,没有找到任何可以做到这一点。也许使用指令不是正确的方法吗?

2 个答案:

答案 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元素的属性。