在Angular表达式中使用Object prototype

时间:2015-03-10 15:56:42

标签: javascript angularjs

如何在角度表达式中使用Object.keys(obj).length

例如,这不起作用:

{{Object.keys(obj).length}}

即使

{{obj}}打印出一个JSON对象。

2 个答案:

答案 0 :(得分:2)

  

只是好奇为什么Object超出了范围或什么

因为Angular表达式中不允许使用Object方法。如果您想查看其他不允许的内容,请检查source code是否有解析器。

// ...
} else if (// block Object so that we can't get hold of dangerous Object.* methods
    obj === Object) {
  throw $parseMinErr('isecobj',
      'Referencing Object in Angular expressions is disallowed! Expression: {0}',
      fullExpression);
}

您可以做的是使用$scope对象显式地向范围公开必要的方法或对象。

答案 1 :(得分:1)

一种解决方案是将Object.keys函数添加到范围:

$scope.getKeys = Object.keys;

然后在模板中:

{{getKeys(obj).length}}