AngularJS - TypeError:$ window.print不是函数

时间:2015-07-30 16:02:28

标签: javascript angularjs

我在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弹出窗口正常显示...

需要帮助

2 个答案:

答案 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();
  }
});

小型演示:http://plnkr.co/edit/E0oCSuE3xceHp1Jtjh7g?p=preview