我正在努力弄清楚如何使用Blaze编程地将变量助手插入到模板中。我认为需要使用某种形式的:
Blaze.render(Blaze.with('variable', contentFunction);
然而,我正在努力使contentFunction正常工作。我尝试了一个返回会话变量的函数:
var session_var = function() {
return Session.get('myVariable');
};
然而,我不断地得到未定义的错误。我知道,如果我定义了一个单独的模板来呈现,这是可以完成的,但是对于这个特定的情况来说,这似乎有点复杂。我想知道是否有人能解释一下Blaze.with和Blaze.view是如何工作的。另外,是否可以通过编程将一个变量助手插入到模板中?
发布于 2015-02-02 06:20:30
不知道你到底想做什么,现在还不清楚这是否是最简单的方法。
但是,如果您查看医生们,您将看到您可以在数据上下文中提供会话变量并使用Blaze.With,或者不提供数据上下文,而是使用Blaze.View (这似乎就是您想要的)。
因此,如果您想呈现一个反应性数据上下文,则必须在Blaze.With的第一个参数中提供它。试着做这样的事情:
var myView = Blaze.With(
function() {
return {
foo: Session.get('foo')
};
},
function() {
return Spacebars.mustache([
'the value of foo is ',
this.lookup('foo')
]);
}
);
Blaze.render(myView, document.body); // or whatever element you want to render it inside
或者,为Blaze.View
var myView = Blaze.View(
function() {
return 'the value of foo is ' + Session.get('foo');
}
);
Blaze.render(myView, document.body);
老实说,了解可呈现内容结构的最简单方法(如果您是编程的话,这是困难的部分)是研究Spacebar编译器生成的内容。换句话说,找到一个由准HTML生成的有趣的模板/子模板,从中选择一个元素并运行Blaze.getView([ELEMENT])._render
,然后研究结果。
https://stackoverflow.com/questions/28278338
复制相似问题