问题描述
我在AngularJS中使用打印功能时遇到了一些麻烦。 我在控制器中有一个调用au打印功能的按钮。 但是我有那个错误:
TypeError: $window.print is not a function
HTML:
<md-button class="md-raised" ng-click="printThis()">Imprimer</md-button>
JS:
$scope.printThis = function(){
console.info("Let go print !");
alert("PLOP");
window.alert("FOO");
$window.alert("BAR");
$window.print();
};
当我单击按钮时,我有3个警报,然后是TypeError! 我尝试了window.print()和$ window.print(),但是没有任何效果……我真的不明白! 如果我按Ctrl + P,则要打印的Chrome弹出窗口会正常显示...
请帮忙
1楼
Erti-Chris Eelmaa
0
已采纳
2015-07-30 16:18:07
您的控制器需要注入$window
依赖项,
.controller("YourController", function($window, $scope) {
$scope.printThis = function(){
$window.alert("BAR");
};
}
如果这样不起作用,建议您删除ID为“ alert”或“ print”的所有html元素。
如果您的HTML元素的ID为“ print”,则它将覆盖window.print变量。
2楼
mrak
0
2015-07-30 16:18:17
角度限制了对window
对象(或任何其他全局变量)的访问。
要访问$window
您必须先将其注入controller
angular.module('App', []).controller('Cnt', function($scope, $window) {
$scope.print = function() {
$window.print();
}
});
小示范: :