首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用Blaze.render + Blaze.view或Blaze.with编程将变量插入Meteor模板

用Blaze.render + Blaze.view或Blaze.with编程将变量插入Meteor模板
EN

Stack Overflow用户
提问于 2015-02-02 13:01:12
回答 1查看 914关注 0票数 0

我正在努力弄清楚如何使用Blaze编程地将变量助手插入到模板中。我认为需要使用某种形式的:

代码语言:javascript
代码运行次数:0
运行
复制
Blaze.render(Blaze.with('variable', contentFunction);

然而,我正在努力使contentFunction正常工作。我尝试了一个返回会话变量的函数:

代码语言:javascript
代码运行次数:0
运行
复制
var session_var = function() {
  return Session.get('myVariable');
};

然而,我不断地得到未定义的错误。我知道,如果我定义了一个单独的模板来呈现,这是可以完成的,但是对于这个特定的情况来说,这似乎有点复杂。我想知道是否有人能解释一下Blaze.with和Blaze.view是如何工作的。另外,是否可以通过编程将一个变量助手插入到模板中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 14:20:30

不知道你到底想做什么,现在还不清楚这是否是最简单的方法。

但是,如果您查看医生们,您将看到您可以在数据上下文中提供会话变量并使用Blaze.With,或者不提供数据上下文,而是使用Blaze.View (这似乎就是您想要的)。

因此,如果您想呈现一个反应性数据上下文,则必须在Blaze.With的第一个参数中提供它。试着做这样的事情:

代码语言:javascript
代码运行次数:0
运行
复制
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

代码语言:javascript
代码运行次数:0
运行
复制
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,然后研究结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28278338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档