如何使 Mustache 逻辑标签发挥作用
How to make Mustache logic tags functional
我目前正在使用 C# 来 create/parse 一个 JSON 文件,然后用它来填充小胡子模板。
我已经使用 Nustache 的 NuGet 包将 Nustache 安装到 VB。
我的 JSON 文件如下所示:
{
"LinkName": "test",
"TESTBOOL": true,
"NodeProfileENUM": "TEST",
"Requester": false,
"Responder": false,
"Nodes": {
"Root": {
"nodeName": "Root",
"displayName": null,
"type": null,
"initialValue": null,
"serializable": null,
"className": null,
"enumName": null,
"isLast": true,
"actionList": {}
}
},
"LinkActions": {}
}
在我的模板中,我尝试使用如下标签:
{{#TESTBOOl}} test {{/TESTBOOL}}
但我一直收到一条错误消息,提示该块未注册,
我还尝试遍历“节点”部分:
{{#each Nodes}}
{{#each this}}
{{this.nodeName}}
{{/each}}
{{/each}}
但这也不起作用。
我正在像这样解析和呈现 json 和模板 (C#):
string nodeProfileFormat = File.ReadAllText("NodeProfileTemplate2.txt");
JObject parsedLinkTest =
JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
string nodeProfileResultTest =
Nustache.Core.Render.StringToString(nodeProfileFormat, parsedLinkTest);
File.WriteAllText("NodeProfileTemplateResult.java", nodeProfileResultTest);
有什么我忘记做的事吗?
要测试您的模板,请使用 moustache's demo。如果您更正拼写错误,您的 TESTBOOL 模板将正常工作:
{{#TESTBOOL}} test {{/TESTBOOL}}
如果你想显示 nodeName
你必须做:
{{Nodes.Root.nodeName}}
您的 json 仅包含对象。您的节点不是数组。也许您正在寻找迭代属性。
关于你的C#,你可以使用NustacheFileToFile
方法:
var parsedLinkTest = JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
Nustache.Core.Render.FileToFile("NodeProfileTemplate2.txt", parsedLinkTest, "NodeProfileTemplateResult.java");
如果失败,请使用调试器检查 parsedLinkTest
是否填满。
我目前正在使用 C# 来 create/parse 一个 JSON 文件,然后用它来填充小胡子模板。
我已经使用 Nustache 的 NuGet 包将 Nustache 安装到 VB。
我的 JSON 文件如下所示:
{
"LinkName": "test",
"TESTBOOL": true,
"NodeProfileENUM": "TEST",
"Requester": false,
"Responder": false,
"Nodes": {
"Root": {
"nodeName": "Root",
"displayName": null,
"type": null,
"initialValue": null,
"serializable": null,
"className": null,
"enumName": null,
"isLast": true,
"actionList": {}
}
},
"LinkActions": {}
}
在我的模板中,我尝试使用如下标签:
{{#TESTBOOl}} test {{/TESTBOOL}}
但我一直收到一条错误消息,提示该块未注册,
我还尝试遍历“节点”部分:
{{#each Nodes}}
{{#each this}}
{{this.nodeName}}
{{/each}}
{{/each}}
但这也不起作用。
我正在像这样解析和呈现 json 和模板 (C#):
string nodeProfileFormat = File.ReadAllText("NodeProfileTemplate2.txt");
JObject parsedLinkTest =
JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
string nodeProfileResultTest =
Nustache.Core.Render.StringToString(nodeProfileFormat, parsedLinkTest);
File.WriteAllText("NodeProfileTemplateResult.java", nodeProfileResultTest);
有什么我忘记做的事吗?
要测试您的模板,请使用 moustache's demo。如果您更正拼写错误,您的 TESTBOOL 模板将正常工作:
{{#TESTBOOL}} test {{/TESTBOOL}}
如果你想显示 nodeName
你必须做:
{{Nodes.Root.nodeName}}
您的 json 仅包含对象。您的节点不是数组。也许您正在寻找迭代属性。
关于你的C#,你可以使用NustacheFileToFile
方法:
var parsedLinkTest = JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
Nustache.Core.Render.FileToFile("NodeProfileTemplate2.txt", parsedLinkTest, "NodeProfileTemplateResult.java");
如果失败,请使用调试器检查 parsedLinkTest
是否填满。