代码之家  ›  专栏  ›  技术社区  ›  shyammakwana.me

为什么有必要在组件中写入Object=Object以获取角度中的Object.keys

  •  5
  • shyammakwana.me  · 技术社区  · 7 年前

    {{ Object.keys(myObj).length }} 在模板文件中。但它抛出了一个错误: ERROR TypeError: Cannot read property 'keys' of undefined

    从网上我得到了一个建议,所以我写了 Object = Object

    1. 我不明白这背后的哲学是什么。
    2. 大括号中的其他表达式和语句如何在角度模板中工作?
    1 回复  |  直到 7 年前
        1
  •  9
  •   Fullstack Guy    7 年前

    模板表达式上下文通常仅限于组件实例本身。所以当你在里面插入一个变量 {{}}

    当你这么做的时候 Object = Object 在组件中,实际上是在创建属性 Object 指全局 对象 组件引用的。

    但是,在模板表达式中不可能实现同样的功能,它不能访问全局属性,除非 undefined .

    这一部分 docs

    模板表达式不能引用全局命名空间中的任何内容, 除非未定义。它们不能引用窗口或文档。

        2
  •  0
  •   José    7 年前

    在模板中呈现的所有内容都应该是组件的一部分,这确实有助于封装,有助于防止将来的错误、意外行为,并使调试任务更容易 另一方面,稍微脱离主题一点,避免在{{}}内使用方法,因为它们充当不纯净的管道,并在每个用户与DOM交互时运行几次,所以最好将函数或方法的结果保存在component.ts中的一个属性中,并且该属性就是您显示的属性