Javascript AngularJS-TypeError:$window.print不是函数
我在AngularJS中的打印功能有一些问题。我的控制器中有一个调用au print功能的按钮。但我有一个错误:Javascript AngularJS-TypeError:$window.print不是函数,javascript,angularjs,Javascript,Angularjs,我在AngularJS中的打印功能有一些问题。我的控制器中有一个调用au print功能的按钮。但我有一个错误: TypeError: $window.print is not a function HTML: <md-button class="md-raised" ng-click="printThis()">Imprimer</md-button> 当我点击按钮时,我有3个警报,然后是TypeError!我尝试了window.print()和$window.pr
TypeError: $window.print is not a function
HTML:
<md-button class="md-raised" ng-click="printThis()">Imprimer</md-button>
当我点击按钮时,我有3个警报,然后是TypeError!我尝试了window.print()和$window.print(),但没有任何效果。。。我真的不明白!如果我按ctrl+P,要打印的chrome弹出窗口将正常显示
需要帮助请您的控制器需要注入
$window
依赖项
.controller("YourController", function($window, $scope) {
$scope.printThis = function(){
$window.alert("BAR");
};
}
如果这不起作用,我建议您删除任何id为“alert”或“print”的html元素
如果您有id为“print”的html元素,它将覆盖window.print变量。您的控制器需要注入
$window
依赖项
.controller("YourController", function($window, $scope) {
$scope.printThis = function(){
$window.alert("BAR");
};
}
如果这不起作用,我建议您删除任何id为“alert”或“print”的html元素
如果您有id为“print”的html元素,它将覆盖window.print变量。角度限制对
窗口
对象(或任何其他全局变量)的访问
要访问$window
,您必须首先将其注入控制器
angular.module('App', []).controller('Cnt', function($scope, $window) {
$scope.print = function() {
$window.print();
}
});
小型演示:角度限制对
窗口
对象(或任何其他全局变量)的访问
要访问$window
,您必须首先将其注入控制器
angular.module('App', []).controller('Cnt', function($scope, $window) {
$scope.print = function() {
$window.print();
}
});
小演示:听起来他已经在做了。。。否则,他会在$window.alert(…)的行中得到错误。当然,我会在我的
控制器中注入$window
。我想我有一个冲突问题,当我执行控制台.debug($window)
时,我看到了所有属性,但没有打印功能!正在进行研究…听起来他已经在做了。。。否则,他会在$window.alert(…)的行中得到错误。当然,我会在我的控制器中注入$window
。我想我有一个冲突问题,当我执行控制台.debug($window)
时,我看到了所有属性,但没有打印功能!正在进行研究…听起来他已经在做了。。。否则他会在$window.alert(…)的行中得到错误。喜欢!我将在HTML中搜索“打印”id或元素或属性;-)问题来自我的模块声明。我设置了var print=angular.module('PrintModule',['PrintServices'])代码>,我在var printModule=…
中重命名,问题已解决:-)您可以使用函数作用域,这样以后就不会这样做了:(function(){…您的代码在这里…})();这不会将任何变量暴露到全局范围。听起来他已经在这样做了。。。否则他会在$window.alert(…)的行中得到错误。喜欢!我将在HTML中搜索“打印”id或元素或属性;-)问题来自我的模块声明。我设置了var print=angular.module('PrintModule',['PrintServices'])代码>,我在var printModule=…
中重命名,问题已解决:-)您可以使用函数作用域,这样以后就不会这样做了:(function(){…您的代码在这里…})();这不会将任何变量公开到全局范围。