我使用NodeJS作为引擎来防尘。 我有部分问题。我认为这是可能的,我想要的。 这是我的index.dust:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Project - {title}</title>
</head>
<body>
<div id="content">
{>"common/navbar-logout"/}
{+content /}
</div>
{+scripts /}
</body>
</html>
我想“导入”common / navbar-logout文件。 在“common / navbar-logout”文件中,我有:
{>"index" /}
{! some HTML!}
{<scripts}
<script>
console.log("yyyy");
</script>
{/scripts}
当我运行这个脚本时,我得到了:
RangeError:超出最大调用堆栈大小 Object.dust.filters.h (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:296:16)at at Object.dust.filter (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:290:34)at at Chunk.reference (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:764:30)at at body_0(evalmachine。:1:371)在加载时 (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14)at at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14)at at body_0(evalmachine。:1:157)在加载时 (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14)at at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14)at at body_0(evalmachine。:1:661)在加载时 (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14)at at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14)at at body_0(evalmachine。:1:157)在加载时 (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14)at at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14)at at body_0(evalmachine。:1:661)
当我在“common / navbar-logout”中删除 {&gt;“index”/} 时,应用程序运行,但我没有来自<的脚本块strong>“common / navbar-logout” “index”。
我的目标是使用部分“{&gt;”common / navbar-logout“/}”
将脚本块从“common / navbar-logout”注入“index”答案 0 :(得分:0)
Dust partials只能为它们自己包含的模板提供块。您必须index
包含common/navbar-logout
作为部分内容,而不是common/navbar-logout
需要index
。然后它可以将其内联部分提供给index
中的块。这并不适合您的使用案例。
为了完成你真正想做的事情,我过去曾经使用过一些自定义助手。像这样:
{! some HTML!}
{@script}
console.log("yyyy");
{/script}
dust.helpers.script = function(chunk, context, bodies, params) {
if (params.src) {
addScript(params.src); // adds to some global context var
} else {
chunk = chunk.write('<script>').render(bodies.block, context).write('</script>');
}
return chunk;
};