AngularJS - отправляет элемент dom на сервер - PullRequest
0 голосов
/ 18 ноября 2018

Извините, если это повторный вопрос, но я не нашел ни одного решения, которое бы подходило мне.

У меня есть представление в AngularJs (с графиками и данными отчета), и мне нужно отправить этотот же вид по электронной почте.Для этого мне нужно отправить его в BackEnd (PHP) и использовать этот элемент DOM в качестве содержимого электронной почты.

Я пробую это

ReportService.js

self.sendEmail = function(element) {
   return Restangular.oneUrl('mailer', 'http://localhost/send-email/').post(null,
{
    element: element
});
}

Контроллер.js

self.print = function () {

email = document.getElementById('email');
self.reportService.sendEmail(email)
 .then(function(data){
   console.log(data);
 });
}

Но сервер ничего не получает в данных POST

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Вы можете использовать Html2Canvas и захватить изображение HTML.Это как снимок экрана, поэтому все ваши стили также будут захвачены.Но не очень хорошая идея получить html от клиента для внутренних операций.

https://html2canvas.hertzen.com/

Редактировать:

Другим подходом будет отправка всего HTML-документа (с тем, что требуется), чтобы PHP с встроенными стилями.метод показан в ссылке ниже.

https://css -tricks.com / send-nice-html-email-with-php /

0 голосов
/ 18 ноября 2018

Вы можете получить доступ к html в элементе с помощью innerHtml(). Но он не будет соответствовать вашим требованиям, так как вы не получите необходимые стили и код js, необходимые для отображения вашего отчета. Все стили в почтовом контенте должны быть только онлайн, иначе клиент emai не будет отображать его должным образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...