2015-04-01 25 views
0

Angular的$ window注入有什么用处?

例如,

var myController = function ($scope, $window) { 

    // window is still available here 
}; 
myController.$inject = ['$scope', '$window']; 

回答

1

在可能的情况下避免使用全局变量是已知的最佳实践。因此,Angular为您提供了一种有效的“角度”方式选项,以便将代码中的窗口对象作为服务提供给您。测试有这个选项是非常有用的。

1

主要用于可测性目的,在Doc

说,窗口是在JavaScript全局可用,它会导致 可测性的问题,因为它是一个全局变量。在角度上我们 总是通过$ window服务引用它,所以它可能被 覆盖,删除或模拟以进行测试。