根据开发者指南 http://docs.angularjs.org/guide/expression我应该能够从 Angular 表达式内部访问浏览器窗口$window
.
与 JavaScript 不同,JavaScript 的名称默认为全局窗口属性,而 Angular 表达式必须使用 $window 来引用全局窗口对象。例如,如果您想在表达式中调用在 window 上定义的alert(),则必须使用 $window.alert()。
但是我似乎无法访问$window
来自评估表达式$scope.$eval
。
以下是注销到控制台时得到的一些输出:
console.log($window); // the Window object as expected
console.log($scope.$eval('$window')); // undefined
console.log($scope.$eval('1+1')); // 2
console.log($scope.$eval('scopeVar')); // 'abc'
控制器有$window
作为依赖。我可以从表达式访问范围变量和其他服务,但不能$window
, so $scope.$eval($window.alert())
也不行。
我在这里缺少什么?
$scope.$eval
评估针对$scope
,因此仅当您将 $window 服务分配给作用域成员时,您的评估才会起作用:
$scope.$window = $window;
console.log($scope.$eval('$window'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)