Mustache: Is there any way to get parent info from child? My data structure is like:
data = {
peerOrgs: [
{
org: "Org1",
peers: [{name:"peer0"}, {name:"peer1"}]
},
{
org: "Org2",
peers: [{name:"peer0"}, {name:"peer1"}]
}
]
}
Now I want to write ${name}.${org} over peers of each peerOrgs.
i.e.
peer0.Org1
peer1.Org1
peer0.Org2
peer1.Org2
.js file:
var Mustache = require("mustache")
var fs = require("fs")
var data = {
peerOrgs: [
{
org: "Org1",
peers: [{name:"peer0"}, {name:"peer1"}]
},
{
org: "Org2",
peers: [{name:"peer0"}, {name:"peer1"}]
}
],
getOrgFromPeer: function() { return `${super.org}` }
}
var template = fs.readFileSync(mustacheFile).toString()
var output = Mustache.render(template, data)
.mustache file:
{{#peerOrgs}}
{{#peers}}
{{name}}.{{getOrgFromPeer}}
{{/peers}}
{{/peerOrgs}}
But I got
Is there any way to get parent info from child?
----------------------edit------------------------- A workaround:
var data = {
peerOrgs: [
{
org: "Org1",
peers: [{name:"peer0"}, {name:"peer1"}]
},
{
org: "Org2",
peers: [{name:"peer0"}, {name:"peer1"}]
}
],
getOrgFromPeer: function() {
for (const peerOrg of config.peerOrgs) {
for (const peer of peerOrg.peers) {
if (peer==this) {
return `${peerOrg.org}`
}
}
}
},
}
Feasible anyway.