Backbone.js 生成PDF';使用主干/木偶视图和;模型
一个非常常见的要求是下载屏幕上显示的数据,作为PDF文件或“mail-A-friend”功能,将数据通过电子邮件发送到用户指定的电子邮件地址 我正在使用主干网和木偶网,希望从我的模型中获取数据,以电子邮件格式创建&作为PDF文件。实际上,我想通过电子邮件发送我的“视图”(或将其转储到pdf文件中!) 问题: 是否可以重复使用屏幕模板来呈现与电子邮件相同的项目(和/或将其转储到PDF文件中) 我见过其他选项,比如jspdf.com,但是,使用它意味着为电子邮件/PDF重新创建另一种格式Backbone.js 生成PDF';使用主干/木偶视图和;模型,backbone.js,pdf-generation,html-email,marionette,backbone-views,Backbone.js,Pdf Generation,Html Email,Marionette,Backbone Views,一个非常常见的要求是下载屏幕上显示的数据,作为PDF文件或“mail-A-friend”功能,将数据通过电子邮件发送到用户指定的电子邮件地址 我正在使用主干网和木偶网,希望从我的模型中获取数据,以电子邮件格式创建&作为PDF文件。实际上,我想通过电子邮件发送我的“视图”(或将其转储到pdf文件中!) 问题: 是否可以重复使用屏幕模板来呈现与电子邮件相同的项目(和/或将其转储到PDF文件中) 我见过其他选项,比如jspdf.com,但是,使用它意味着为电子邮件/PDF重新创建另一种格式 我试图在下
我试图在下面给出一个答案,但仍然在寻找任何可以使创建PDF或html电子邮件更容易的插件或库。我找到的最简单的方法是创建新模板或重新使用现有模板(如果合适),并使用模型从编译的模板(下划线或把手)生成html。使用现有视图的el来捕获dom元素不是一个好主意,因为如果使用jQuery或其他框架,这些元素会附加额外的类 还可以使用多个模板并将结果附加到div中,以便以电子邮件或打印格式生成完整的数据表示 我在doucment的末尾创建了一个div,它通常是空的:
<button id="email-itinerary">Email Details</button>
............
............
............
<div id="email-dialog">
</div>
电子邮件详细信息
............
............
............
单击“电子邮件详细信息”按钮时,此按钮的处理程序使用符合要求的模板和模型生成html
var result = "<table border=\"1\">" +
"<tr>" +
//add table headers here
"</tr>";
var compile = Handlebars.compile($("#email-template").html().trim());
for(var i=0;i<collection.length;i++) {
result += compile(collection.at(i).toJSON()); //generates <tr>
}
result += "</table>"; //finish table.
//use more templates to add other data, and append to result variable.
//Finally add the html to div
$("#email-dialog").empty();
$("#email-dialog").append($.parseHTML(result));
$("#email-dialog").dialog({
title: "Hotels - at a glance",
modal: true,
height: 550,
width: 1000,
});
var result=“”+
"" +
//在此处添加表格标题
"";
var compile=handlebar.compile($(“#电子邮件模板”).html().trim();
对于(var i=0;i我发现的最简单的方法是创建新模板或重新使用现有模板(如果合适),并使用模型从编译的模板(下划线或把手)生成html。使用现有视图的el来捕获dom元素不是一个好主意,因为如果使用jQuery或其他框架,这些元素会附加额外的类
还可以使用多个模板并将结果附加到div中,以便以电子邮件或打印格式生成完整的数据表示
我在doucment的末尾创建了一个div,它通常是空的:
<button id="email-itinerary">Email Details</button>
............
............
............
<div id="email-dialog">
</div>
电子邮件详细信息
............
............
............
单击“电子邮件详细信息”按钮时,此按钮的处理程序使用符合要求的模板和模型生成html
var result = "<table border=\"1\">" +
"<tr>" +
//add table headers here
"</tr>";
var compile = Handlebars.compile($("#email-template").html().trim());
for(var i=0;i<collection.length;i++) {
result += compile(collection.at(i).toJSON()); //generates <tr>
}
result += "</table>"; //finish table.
//use more templates to add other data, and append to result variable.
//Finally add the html to div
$("#email-dialog").empty();
$("#email-dialog").append($.parseHTML(result));
$("#email-dialog").dialog({
title: "Hotels - at a glance",
modal: true,
height: 550,
width: 1000,
});
var result=“”+
"" +
//在此处添加表格标题
"";
var compile=handlebar.compile($(“#电子邮件模板”).html().trim();
对于(var i=0;i