©
This document uses PHP Chinese website manual Release
A reference to the browser's window
object. While window
is globally available in JavaScript, it causes testability problems, because it is a global variable. In angular we always refer to it through the $window
service, so it may be overridden, removed or mocked for testing.
Expressions, like the one defined for the ngClick
directive in the example below, are evaluated with respect to the current scope. Therefore, there is no risk of inadvertently coding in a dependency on a global value in such an expression.
<script>
angular.module('windowExample', [])
.controller('ExampleController', ['$scope', '$window', Function ($scope, $window) {
$scope.greeting = 'Hello, World!';
$scope.doGreeting = Function(greeting) {
$window.alert(greeting);
};
}]);</script><div ng-controller="ExampleController">
<input Type="text" ng-model="greeting" />
<button ng-click="doGreeting(greeting)">ALERT</button></div>
it('should display the greeting in the input box', Function() {
element(by.model('greeting')).sendKeys('Hello, E2E Tests');
// If we click the button it will block the test runner
// element(':button').click();});