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

How to check type of variable inside 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 是否已定义?

注意:我使用的是angular 1.2.28.

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

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

typeof 运算符在 angular 表达式中不起作用。但是,您可以在范围内使用函数来执行此操作。

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

在你的控制器中:

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

这也行

创建过滤器:

.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>