【问题标题】:How to add a template to body in Meteor inside a package如何在包内的 Meteor 中将模板添加到正文
【发布时间】:2012-11-05 23:25:28
【问题描述】:

我有这个模板:

<template name="sample">
  <h1>Sample</h1>
</template>

在 Meteor 应用程序中,我可以通过这种方式将其添加到正文中(作为部分):

{{> sample}}

它有效。我什至测试过调用 Template.sample();在浏览器控制台中,它可以工作。

当我将它移动到我的包中(即我的包文件夹中的 sample.html 文件)时,模板似乎消失了:每当我调用该函数时,我都会得到 Template.sample() is not a function,我什至无法将其渲染为部分.

我有一个带有此代码的package.js(显然,该包已通过.meteor 中的packages 文件正确加载到我的应用程序中):

Package.on_use(function (api) {
  api.add_files(['sample.html', 'sample.js'], 'client');
});

为什么这不起作用? 如何将(响应式)模板从我的包中附加到正文?

【问题讨论】:

    标签: package meteor handlebars.js


    【解决方案1】:

    包含在文件packages.js 的包中

    之前

    api.use('meteor-platform');
    api.use('ui');`
    

    之后 第一个“.html”文件,在“.js”文件之后

    api.addFiles('filename.html','client');
    api.addFiles('filename.js','client');`
    

    【讨论】:

      【解决方案2】:

      js 之前包含html 文件也很重要

      api.add_files("client/sampleTemplate.html", "client");
      api.add_files("client/sampleTemplate.js", "client");
      

      【讨论】:

      • 正确,因此模板JS文件可以访问HTML中定义的模板。
      【解决方案3】:

      解决了!添加这一行:

      api.use(['templating'], 'client');
      

      【讨论】:

      • 这里的另一个问题是,如果您选择将大部分应用程序放入包中,则需要注意加载顺序。您必须先加载模板,然后再加载任何相关的 JS/coffee 文件,否则您将收到“模板不存在”类型错误。
      • 你应该接受你自己的答案,所以问题会显示为“已解决”并且排名更高:)
      猜你喜欢
      • 2020-03-20
      • 2016-01-28
      • 2016-03-02
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多