2014-01-23 2 views
1

У меня есть большое приложение Rails 3.2/AngularJS, и я пытаюсь создать pdf-файл вида/шаблона AngularJS.AngularJS views to pdf using Shrimp

Я использую креветку (которая создает pdf-файлы с использованием phantomJS), и я получаю шаблон, но ни один из данных, созданных через AngularJS. Это я подозреваю, потому что я запускаю его за пределами Rails.

Когда я запускаю его как Middleware и направьте его на мою страницу

http://localhost:3000/api#/report/1.pdf 

AngularJS улавливает это в это система маршрутизации. Поэтому я пробовал

http://localhost:3000/api.pdf#/report/1 

и теперь время креветки и не загружает AngularJS вообще.

Является ли креветка правильным для этого?

Если да, то как настроить его так, чтобы он работал с шаблонами AngularJS & routing?

Есть ли лучший инструмент, который я должен использовать для динамического создания PDF-файла из содержимого на экране (т. Е. Большое количество вычислений в отчете выполняется в AngularJS)?

+0

звучит как ваш JS-код или не работает, или, может быть, ваши таймаутов для рендеринга слишком низки. См. Поля конфигурации render_timeout и rendering_time. – Mike

+0

Я пробовал играть с таймаутами. Я думаю, проблема заключается в том, что я ставлю это промежуточным ПО, я не знаю, как его вызывать, но если я его вызову из-за пределов Rails, то я не аутентифицирован, поэтому я не могу получить доступ к данным. Как поместить Shrimp в Rails, но правильно назовите его для шаблона AngularJS? – map7

ответ

0

Итак, я понимаю, что этот вопрос старый, и вы, вероятно, двинулись дальше, но, возможно, это помогает кому-то другому.

У меня есть приложение Ember, с которым я пытаюсь достичь подобной вещи. Ключевое значение для реализации с тем, что пытается быть достигнуто здесь, состоит в том, что все после # невидимо для сервера. Таким образом, для приложения JS нет способа узнать маршрут, к которому необходимо перейти.

Я решил эту проблему, передав на сервер параметр GET, внедряя его с использованием gon gem в выходной HTML-код на макете, а затем, имея что-то в маршруте приложения Ember, который прочитал свойство и перевел приложение на нужный маршрут ,

Теперь, если я могу просто получить Креветки, чтобы сделать что-то, что phantomjs из командной строки может ...

+0

Я только что положил ссылку непосредственно в pdf и использовал маршруты рельсов для отправки PDF обратно клиенту. Export PDF Кажется, что все работает нормально. – map7

+0

Да, это сработает наверняка. По звукам этого гораздо более динамичная работа для нас с множеством возможностей, поэтому мы не могли этого сделать. – Jaijaz

+0

Я пробовал вас, отправив запрос на получение запроса через AngularJS на сервер, и я могу получить его для рендеринга PDF на стороне Rails, но я не знаю, как отправить его обратно, чтобы браузер загрузил pdf-файл который был только что создан. – map7