我在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弹出窗口正常显示...
需要帮助
答案 0 :(得分:0)
您的控制器需要注入$window
依赖项
.controller("YourController", function($window, $scope) {
$scope.printThis = function(){
$window.alert("BAR");
};
}
如果这不起作用,我建议您删除ID为&#34; alert&#34;的任何html元素。或&#34;打印&#34;。
如果你的html元素带有id&#34; print&#34;,它将覆盖window.print变量。
答案 1 :(得分:0)
Angular限制对window
对象(或任何其他全局变量)的访问。
要访问$window
,您必须先将其注入controller
angular.module('App', []).controller('Cnt', function($scope, $window) {
$scope.print = function() {
$window.print();
}
});