Как я могу напечатать весь элемент DOM, используя angular-screenshot?
Я уже пытался скопировать / вставить пример кода на веб-странице: https://weihanchen.github.io/angular-screenshot/ Дело в том, что они используют целый контроллер для него, и мои контроллеры разделены представлениями. Вот как я добавляю их в свой "основной" js:
.state("main.pallet", {
url: "/palletize",
templateUrl: "app/views/pallet.html",
data: {pageTitle: 'Entarimado.'},
controller: "Pallet",
resolve: {
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'TepaPrime',
insertBefore: '#ng_load_plugins_before', // load the above css files before '#ng_load_plugins_before'
files: [
'app/js/filters/filters.js',
'app/js/directives/numericFormat.js',
'app/js/directives/trimText.js',
'app/js/directives/nextOnEnter.js',
'app/js/factories/crud.factory.js',
'app/js/controllers/modals/palletContent.js',
'app/js/controllers/pallet.js',
'app/js/services/printDocument.js'
]
});
}]
}
})
Это мой файл printDocument.js, куда я вставил код из примера (и изменил его, чтобы он работал):
'use strict';
function appController($scope) {
var self = this;
self.fullScreenApi;
self.downloadFull = downloadFull;
this.downloadFull = function() {
if (self.fullScreenApi) self.fullScreenApi.downloadFull();
}
return downloadFull;
}
angular
.module('TepaPrime')
.service('printDocument', appController);
Затем я внедряю его в контроллер моего представления следующим образом:
function Pallet($rootScope, $scope, $state, $timeout, $uibModal, $http, $filter, crud, sessionService, printDocument) {
...
}
Проблема в том, что он не работает, и он вылетает на всю страницу и выдает эту ошибку:
Ошибка: [$ инжектор: unpr] http://errors.angularjs.org/1.5.0/$ инжектор /unpr? P0=copeProvider%20%3C-%20%24scope%20%3C-%20printDocument
Я действительно оценил бы некоторую помощь, поскольку я застрял с этим в течение долгого времени и, кажется, не в состоянии приблизиться к решению.
1 ответ
После довольно долгой борьбы я смог это исправить, изменив HTML с
<button class="btn btn-info" ng-if="appCtrl.isFullOpen" ng-click="appCtrl.downloadFull()">
<i class="material-icons">Descargar tabla</i>
</button>
Для того, чтобы:
<button class="btn btn-info" ng-if="appCtrl.isFullOpen" ng-click="appCtrl.fullScreenApi.downloadFull()">
<i class="material-icons">Descargar tabla</i>
</button>
Проблема в том, что функция downloadFull() была внутри fullscreenApi.