在角度表达式中使用对象原型

using Object prototype in Angular expression

本文关键字:对象 原型 表达式      更新时间:2023-09-26

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

例如,这不起作用:

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

即使

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

一种解决方案是将Object.keys函数添加到作用域中:

$scope.getKeys = Object.keys;

然后在模板中:

{{getKeys(obj).length}}

只是好奇为什么对象超出范围或其他东西

因为角度表达式中不允许使用Object方法。检查解析器的源代码,如果你想看看还有什么是不允许的。

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