$document 和 Angular 中的 $window.document 有什么区别?

What's the difference between $document and $window.document in Angular?

我在JSBin中尝试了下面的代码,第一个可以得到canvas对象。但是,第二个不行。

JSBin: http://jsbin.com/natavejasa/1/edit?html,js,output

var canvas = $window.document.getElementById('myCanvas');

JSBin: http://jsbin.com/yareb/1/edit?html,js,output

var canvas = $document.getElementById('myCanvas');

所以我想知道 $window.document$document 之间有什么区别。

$document 等同于 angular.element(window.document) - window.document.

的 jqLit​​e 包装器

$window.documentwindow.document 相同 - 即它是 DOM 元素 document.

以下为true

$window.document === $document[0]

这没什么区别,就像你从水平上看一样。这不是 angularjs 它是 js,但你需要先删除美元。 至于是从angularjs中看出的不好说。如果可能,您需要使用简单的 js。 这些实体是全球性的。

$document 是一个 Angular 服务,它引用了浏览器的 window.document 对象。

<script>
   var app = angular.module('documentExample', []);
     app.controller('ExampleController', ['$scope', '$document', function ($scope,$document) {
              $scope.title = $document[0].title;
              $scope.windowTitle = angular.element(window.document)[0].title;
        }]);
 </script>

<div ng-app="documentExample" ng-controller="ExampleController">
   <p>$document title: <b ng-bind="title"></b></p>
   <p>window.document title: <b ng-bind="windowTitle"></b></p>
</div>
  • $window.document 等同于 window.document