Mustache
Apparence
Links
Template
<script type="x-tmpl-mustache" id="template">
<table>
<thead>
<tr>
<th>Id</th>
<th>State</th>
<th>Assigned to</th>
</tr>
</thead>
<tbody>
{{#.}}
<tr>
<td><a href="https://dev.azure.com/msc-dev/Pricing/_workitems/edit/{{id}}">{{id}}</a></td>
<td>{{fields.System_Title}}</td>
<td>{{fields.System_State}}</td>
<td>{{fields.System_AssignedTo.displayName}}</td>
</tr>
{{/.}}
</tbody>
</table>
</script>
<script>
$(() => {
const template = $("#template").html();
const rendered = Mustache.render(template, json);
});
</script>
|
Doesn't handle dots in property name
// a solution could be to replace the dots in property names (it uses lodash)
function replaceDotWithUnderscore(obj) {
_.forOwn(obj, (value, key) => {
if (_.includes(key, '.')) {
const cleanKey = _.replace(key, /\./g, '_');
obj[cleanKey] = value;
delete obj[key];
}
// recursive call if the value is an object or an array
if (_.isObject(value)) {
return replaceDotWithUnderscore(value);
}
});
return obj;
}
|