Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Angularjs $window.print()在其上方的行之前执行_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Angularjs $window.print()在其上方的行之前执行

Angularjs $window.print()在其上方的行之前执行,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,下面代码的问题是$window.print()在$scope.loading_status=false之前执行,这不允许我在打印页面之前隐藏某些DOM元素。我怎样才能解决这个问题 $scope.print_error_response=function(){ $scope.loading_status=false; $window.print(); } 这很有效 $timeout(function() { $window.print(

下面代码的问题是$window.print()在$scope.loading_status=false之前执行,这不允许我在打印页面之前隐藏某些DOM元素。我怎样才能解决这个问题

  $scope.print_error_response=function(){
     $scope.loading_status=false;
     $window.print();    
 }
这很有效

 $timeout(function() {
            $window.print();
      })
这很有效

 $timeout(function() {
            $window.print();
      })

$scope.loading_status
的分配发生在调用
$window.print()
之前,因为这是Javascript的本质。您可能看到的(因为我看不出您是如何隐藏DOM元素的)是Javascript的异步特性,因为Angular在评估所有作用域的“摘要周期”之后才更新DOM

$timeout
中包装
$window.print()
调用的原因是,它将
print()
方法调用安排在angular完成摘要循环并更新DOM之后进行(从而隐藏“某些DOM元素”)


下面是对Javascript事件循环的合理解释:

分配
$scope.load\u status
发生在调用
$window.print()
之前,因为这是Javascript的本质。您可能看到的(因为我看不出您是如何隐藏DOM元素的)是Javascript的异步特性,因为Angular在评估所有作用域的“摘要周期”之后才更新DOM

$timeout
中包装
$window.print()
调用的原因是,它将
print()
方法调用安排在angular完成摘要循环并更新DOM之后进行(从而隐藏“某些DOM元素”)

下面是Javascript事件循环的合理解释: