【问题标题】:Meteorjs Template.foo() is not workingMeteorjs Template.foo() 不工作
【发布时间】:2014-04-11 02:10:29
【问题描述】:

我正在尝试通过我的 js 渲染模板,如下所示

Template.customerclaim({data:""}); 

它在以前版本的 meteorjs 中工作正常,新更新它抛出错误 Property 'customerclaim' of object #<Object> is not a function.

【问题讨论】:

    标签: javascript node.js meteor meteor-blaze


    【解决方案1】:

    如果要渲染结果

    仔细阅读 using blaze wiki 的 this section。简而言之,您正在做的事情不再被允许,因此您需要使用示例解决方法之一。另请参阅this 相关问题。

    如果你想返回一个字符串(例如用于电子邮件模板)

    看看this issue。具体来说,你可以使用这个:

    var toHTMLWithData = function (kind, data) {
      return UI.toHTML(kind.extend({data: function () { return data; }}));
    };
    

    要获取字符串,可以这样使用:

    var email = toHTMLWithData(Template.customerclaim, {name: 'John Doe'});
    

    我建议您关注该问题的更改,因为这在未来的版本中可能不起作用。

    【讨论】:

    • 感谢您的回答 david,但我关心的是如何使用 javascript 渲染模板 html,就像 Template.foo() 一样,因为我正在使用名为 cusomerClaim It 的模板名称生成邮件模板需要上下文数据。如果可能的话,你能给我几行前做这件事吗?
    • 哦,我假设您正在尝试渲染结果,而不是获取字符串。我用两种情况的建议更新了答案。
    • 谢谢大卫,你让我开心:)
    • 我认为 kind 变量应该是模板的实例:P,如果我错了,请纠正我。
    • 糟糕!你是对的 - 你需要传递模板实例,而不是名称。我更正了这个例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多