助手中上下文数据中的标签
Tags within context data in helper
我正在尝试解决数据可以包含引用其他数据的标签的情况。因此,如果我的灰尘文件如下所示:
Document.title: {Document.title}
cfg.title: {cfg.title}
output: {#ctx key="{cfg.title}" /}
我的上下文是这样的:
{
cfg: {
title: '{Document.title}'
}
, Document: {
title: 'Here is my title'
}
, ctx: function(chunk, context, bodies, params){
return context.resolve(params.key);
}
}
我得到以下输出:
Document.title: This is the title
cfg.title: {Document.title}
output:
我的 "ctx" 辅助函数需要是什么样子才能输出 "Here is my title"? (注意:我知道只指向 Document.title 会更容易,但是 'cfg' 和 'Document' 是从不同的地方生成的,并在渲染时合并)
在某些时候,您必须编译(或以其他方式解析)构成您的配置的小模板。这是一种可能的方法,我使用 dust.compile
提前构建配置:
{
cfg: {
title: dust.compile('{Document.title}')
}, Document: {
title: 'Here is my title'
}, ctx: function(chunk, context, bodies, params){
eval(params.key)(chunk, context);
}
}
使用模板:
{#ctx key=cfg.title /}
请注意,您在这里直接传递 cfg.title
而不是先将其字符串化——这很重要,这样您就不必使用 context.resolve
进行双重查找。
此方法不会生成模板可读的 cfg.title
,因此如果这对您很重要,您可以将 dust.compile
步骤移动到 ctx
函数内部。
我正在尝试解决数据可以包含引用其他数据的标签的情况。因此,如果我的灰尘文件如下所示:
Document.title: {Document.title}
cfg.title: {cfg.title}
output: {#ctx key="{cfg.title}" /}
我的上下文是这样的:
{
cfg: {
title: '{Document.title}'
}
, Document: {
title: 'Here is my title'
}
, ctx: function(chunk, context, bodies, params){
return context.resolve(params.key);
}
}
我得到以下输出:
Document.title: This is the title
cfg.title: {Document.title}
output:
我的 "ctx" 辅助函数需要是什么样子才能输出 "Here is my title"? (注意:我知道只指向 Document.title 会更容易,但是 'cfg' 和 'Document' 是从不同的地方生成的,并在渲染时合并)
在某些时候,您必须编译(或以其他方式解析)构成您的配置的小模板。这是一种可能的方法,我使用 dust.compile
提前构建配置:
{
cfg: {
title: dust.compile('{Document.title}')
}, Document: {
title: 'Here is my title'
}, ctx: function(chunk, context, bodies, params){
eval(params.key)(chunk, context);
}
}
使用模板:
{#ctx key=cfg.title /}
请注意,您在这里直接传递 cfg.title
而不是先将其字符串化——这很重要,这样您就不必使用 context.resolve
进行双重查找。
此方法不会生成模板可读的 cfg.title
,因此如果这对您很重要,您可以将 dust.compile
步骤移动到 ctx
函数内部。