Массив Docxtemplater только вводит последнее значение
Здравствуйте, у меня есть форма, которую пользователь заполняет динамическими полями, которые пользователь может добавлять или удалять. После заполнения этой формы текстовый документ создается с использованием docxtemplater. Я создаю массив, так что я могу пройтись по нескольким элементам, которые будут введены в мой документ, хотя я получаю только последний введенный элемент.
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"}]
Как я могу получить все значения из этого в консоли в документ?
Спасибо вам.
1 ответ
Действительно, здесь вы писали:
arr = [...];
docx.setData({
testloop: [arr],
});
Это означает, что вы передавали двумерный массив.
Вместо этого просто напишите:
arr = [...];
docx.setData({
testloop: arr,
});