如何检查ng-class中的变量类型?

时间:2016-06-23 09:09:17

标签: angularjs ng-class

<div ng-class="{
    'undefined' : typeof object.property === 'undefined',
    'edit-active' : open == true
  }"> 
      {{ object.property }} 
</div>

这给我一个语法错误:

Error: [$parse:syntax] Syntax Error: Token 'object.property' is unexpected, expecting [}]

如何检查是否定义了object.property

注意:我使用的是角度1.2.28。

3 个答案:

答案 0 :(得分:2)

如果你需要检查是否有smth,你可以做得更简单

<div ng-class="{
    'undefined' : !object.property,
    'edit-active' :open == true
  }"> 
      {{ object.property }} 
</div>

答案 1 :(得分:1)

typeof运算符不会在角度表达式内工作。但是,您可以在范围内使用函数。

<div ng-class="{
    'undefined' : checkType(object.property),
    'edit-active' : open == true
  }"> 
      {{ object.property }} 
</div>

在您的控制器中:

$scope.checkType = function(prop) {
    return typeof prop === 'undefined';
}

答案 2 :(得分:0)

这也有效

创建过滤器:

.filter('isUndefined', [function() {
  return function(input) {
    return typeof input === 'undefined';
  }
}]);

使用ng-class中的过滤器:

<div ng-class="{
    'empty' : object.property == '' || (object.property | isUndefined),
    'edit-active' : open == true
  }">
    {{object.property}}
</div>