Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-TypeError:$window.print不是函数_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS-TypeError:$window.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

我在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.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(){…您的代码在这里…})();这不会将任何变量公开到全局范围。