2016-12-27 8 views
0

Я использую NodeJS как двигатель для пыли. У меня проблема с частичными. Я думаю, что это возможно, чего я хочу. Вот мой index.dust:Dust.js - частичное расширение основания

<!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> 

Я хотел бы "импортировать" общий/Navbar-выход из системы файлов. В файле "общий/Navbar-выхода из системы", у меня есть:

{>"index" /} 
{! some HTML!} 
{<scripts} 
<script> 
    console.log("yyyy"); 
</script> 
{/scripts} 

Когда я запускаю этот сценарий, я получил:

RangeError: Maximum call stack size exceeded at Object.dust.filters.h (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:296:16) at Object.dust.filter (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:290:34) at Chunk.reference (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:764:30) at body_0 (evalmachine.:1:371) at load (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14) at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14) at body_0 (evalmachine.:1:157) at load (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14) at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14) at body_0 (evalmachine.:1:661) at load (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14) at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14) at body_0 (evalmachine.:1:157) at load (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:151:14) at Chunk.partial (/APP_PATH/node_modules/dustjs-linkedin/lib/dust.js:911:14) at body_0 (evalmachine.:1:661)

Когда я удалить {> "Индекс" /} в «общее/Navbar-выход из системы», приложение бежать, но я не имею блока сценария из «общих/выхода из системы навигационной панели-» в «индекс».

Моя цель инъекционные скрипт-блок от «общего/навигационной панели-выход из системы» в «индекс» с использованием частичного «{>» общий/NavBar-выхода из системы «/}»

ответ

0

Пыль обертоны может обеспечить только блоки к шаблонам, которые они включают в себя. Вместо 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; 
}; 
+0

К сожалению, это не работает так, как я хочу. Он добавляет сценарий в конце «common/navbar-logout», но не в конце «index» (в расширении скрипта). Я думаю, что я не достигаю того, чего хочу. Я должен поступить иначе. – IceManSpy

 Смежные вопросы

  • Нет связанных вопросов^_^