2015-07-09 2 views
2

Ok у меня есть эта кнопка:Как вызвать функцию печати в новом окне после загрузки страницы?

и у меня есть эта функция для подтверждающим билета:

$scope.ConfirmTicketPayOut = function (ticketPin, username) 
    { 
     $scope.ticketPin = ticketPin; 
     localStorage.setItem("ticketPin", ticketPin); 
     accountDataProviderService.confirmTicketPayOut(ticketPin, username) 
     .then(function (response) { 

      $scope.confirmTicketPayOut = response; 
      if ($scope.confirmTicketPayOut.Result == true) 
      { 
        var w = $window.open('/account/ticketprint'); 
        angular.element(w).bind('load', function() { 
         w.print(); 
        }); 
      } 
     }); 
    } 

У меня есть проблема, потому что, когда пользователь нажимает на кнопку, мне нужно, чтобы открыть новое окно с данными и для вызова опции печати. В этом случае я получаю опцию печати, и новое окно открыто, но страница пустая, поэтому мой вывод заключается в том, что страница загружается после появления опции печати. Мне нужно одновременно загрузить страницу и показать параметр печати, но без $timeout. Это возможно?

ответ

0

Пробуйте использовать угловые события viewContentLoaded. вызовите ваш метод после этого события.

Пример

$scope.$on('$viewContentLoaded', function() { 

    // Your method call 

} 
+0

, где поместить это? – uzhas

+0

в вашем контроллере печати. где вы вызываете функцию печати – Anita

+0

вот так? $ scope. $ on ('$ viewContentLoaded', function() { var w = $ window.open ('/ account/ticketprint'); angular.element (w) .bind ('load', function() { w.print(); }); }); – uzhas

Смежные вопросы