您好我有一个表单,用户填写了一些用户可以添加或删除的动态字段。完成此表单后,将使用docxtemplater创建word文档。我正在创建一个数组,以便我可以遍历将输入到我的文档中的多个项目,虽然我只输入最后一个项目。
使用Javascript:
var methods = document.getElementsByName("Method[]");
var attributes = document.getElementsByName("Attribute[]");
var locations = document.getElementsByName("Location[]");
var len = methods.length;
var mdata = []
for (var x = 0; x < len; x++){
var element = {
"Method": methods[x].value,
"Attribute": attributes[x].value,
"Location": locations[x].value
};
mdata.push(element);
}
console.log(JSON.stringify(mdata));
var docxvar = {
ShelfLifeExpiry: $("#shelfdrp").val(),
monograph: "2",
"testloop":
[
mdata
]
};
docx.docxtemplater.setData(docxvar);
文档模板:
{#testloop}
{Method}
{Attribute}
{Location}
{/testloop}
来自控制台:
[{"Method":"3434","Attribute":"434","Location":"434"},{"Method":"4343","Attribute":"3434","Location":"232"},{"Method":"3231","Attribute":"232","Location":"323321"}]
如何将控制台中的所有值都放入文档中?
谢谢你。
答案 0 :(得分:0)
的确,在这里,你写的是:
arr = [...];
docx.setData({
testloop: [arr],
});
表示您正在传递二维数组。
相反,只需写:
arr = [...];
docx.setData({
testloop: arr,
});