2016-10-28 6 views
0

Я работаю с dust.js на стороне сервера. У меня есть некоторый код, который выглядит следующим образом:Dust onLoad context always undefined

dust.onLoad = function(tmpl, ctx, cb) { 
    console.log(ctx); 
}; 

... 

dust.context(null, { layout: this.layout }); 
console.log('context injected'); 
dust.stream('testTemplate', { test: true }); 

Выход выглядит следующим образом:

context injected 
undefined 

ответ

1

При вызове dust.context она возвращает контекст для того, чтобы использовать позже. Он не устанавливает параметры, которые вы предоставляете, на любой глобальный объект.

Попробуйте пропускание контекста, возвращенный к вашему dust.stream вызову, как это:

var ctx = dust.context(null, { layout: this.layout }); 
dust.stream('testTemplate', ctx.push({ test: true })); 
+0

Я не пытаюсь получить контекст в шаблон. Я пытаюсь получить контекст в функции 'dust.onLoad'. – refeniz

+0

Вы не можете получить контекст в onLoad, только глобальные параметры (второй аргумент для создания контекста) – Interrobang