在开发Angular的应用程序时使用document
和$document
有什么区别?
我读到使用有角度的等价物更好:
$window
代替window
或$timeout
代替setTimeout
。
但是......为什么?
我认为window
,setTimeout
和document
更快,因为它们是原生的,并且不需要通过" Angular框架的代码。
使用Angular的等价物而不是本机函数,来自JS的对象
是否更好?答案 0 :(得分:9)
通过使用$ document和$ window的角度服务,您可以使代码单元测试准备就绪。 这种依赖注入允许您在测试中使用$ document或$ window的模拟版本。
可以忽略提到的性能影响。
答案 1 :(得分:7)
$document
是一个jQuery对象$(document)
。
所以基本上你应该能够做到:
$document[0].property = document.property
您可以查看this作为示例。
答案 2 :(得分:1)
以下是永远的: $ window.document === $ document [0]
答案 3 :(得分:0)
你应该使用有角度的包装纸,bcus它不会破坏与model->视图的角度同步,
例如,如果你使用setTimeout,你必须$ digest()范围来刷新视图中的值,如果你打算改变一些模型值,另一方面如果你使用$ timeout你就不会#39 ; t需要这样做bcus范围将在函数结束后刷新