Каждая запись дает отдельную HTML-таблицу с использованием node-json2html

Я создаю HTML-таблицу с использованием данных JSON, и мое преобразование дает для каждой записи отдельную таблицу.

 var data=[{"name":"aa","mid":"12345","user":"a123","password":"a@123"},{"name":"bb","mid":"2345","user":"b123","password":"b@123"}]
var transform=[
    {"<>":"style","html":"table,th,td {border: 1px solid black;border-collapse: collapse;}th {text-align: left;}"},
    {"<>":"p","html":"Dear client"},
    {"<>":"p","html":"Please find below merchant users passwords are expired. Kindly take necessaray action immediately."},
    {"<>":"table","style":"width:100%","html":[
        {"<>":"tbody","html":[
            {"<>":"tr","html":[
                {"<>":"th","id":"name","html":"Client Name"},
                {"<>":"th","id":"mid","html":"MID Number"},
                {"<>":"th","id":"username","html":"Username"},
                {"<>":"th","id":"password","html":"Current Password"}
            ]},
        {"<>":"tbody","id":"json-body","html":[
            {"<>":"tr","html":[
                {"<>":"td","html":"${name}"},
                {"<>":"td","html":"${mid}"},
                {"<>":"td","html":"${user}"},
                {"<>":"td","html":"${password}"}
            ]},
        ]},
        ]},
    ]},
    {"<>":"p","html":"Thanks & Regards"},
    {"<>":"p","html":"support@aa.com"}
]

Как я могу сделать это, собрав все свои данные в одну HTML-таблицу?

1 ответ

Решение

Вы можете изменить данные на Object который имеет ключ users а затем определить новый transform и новая встроенная функция для преобразования data.users,

ps: думаю первый tbody должно быть thead,

Код ниже:

var data = {
    users: [{
        "name": "aa",
        "mid": "12345",
        "user": "a123",
        "password": "a@123"
    }, {
        "name": "bb",
        "mid": "2345",
        "user": "b123",
        "password": "b@123"
    }]
}
var transform2 = [{
    "<>": "tr",
    "html": [{
        "<>": "td",
        "html": "${name}"
    }, {
        "<>": "td",
        "html": "${mid}"
    }, {
        "<>": "td",
        "html": "${user}"
    }, {
        "<>": "td",
        "html": "${password}"
    }]
}];
var transform = [{
    "<>": "style",
    "html": "table,th,td {border: 1px solid black;border-collapse: collapse;}th {text-align: left;}"
}, {
    "<>": "p",
    "html": "Dear client"
}, {
    "<>": "p",
    "html": "Please find below merchant users passwords are expired. Kindly take necessaray action immediately."
}, {
    "<>": "table",
    "style": "width:100%",
    "html": [{
        "<>": "thead",
        "html": [{
            "<>": "tr",
            "html": [{
                "<>": "th",
                "id": "name",
                "html": "Client Name"
            }, {
                "<>": "th",
                "id": "mid",
                "html": "MID Number"
            }, {
                "<>": "th",
                "id": "username",
                "html": "Username"
            }, {
                "<>": "th",
                "id": "password",
                "html": "Current Password"
            }]
        }, {
            "<>": "tbody",
            "id": "json-body",
            "html": function(obj) {
                return (json2html.transform(obj.user, transform2));
            }
        }, ]
    }, ]
}, {
    "<>": "p",
    "html": "Thanks & Regards"
}, {
    "<>": "p",
    "html": "support@aa.com"
}];
var html = json2html.transform(data, transform);

увидеть это

Другие вопросы по тегам