$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
.
的 jqLite 包装器
$window.document
与 window.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
我在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
.
$window.document
与 window.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