collimarco
collimarco

Reputation: 35400

How to add a template to body in Meteor inside a package

I have this template:

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

Inside a Meteor app I can add this to body this way (as a partial):

{{> sample}}

It works. I've even tested to call Template.sample(); inside browser console and it works.

When I move this inside my package (i.e. a sample.html file inside my package folder) the template seems to disappear: I get Template.sample() is not a function whenever I call the function and I am not even able to render it as a partial.

I have a package.js with this code (and obviously the package is correctly loaded inside my app through packages file in .meteor):

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

Why this doesn't work? How can I append a (reactive) Template to body from my package?

Upvotes: 11

Views: 3203

Answers (3)

Ramon Henrique
Ramon Henrique

Reputation: 21

Include in file packages.js of package

before

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

after first ".html" files, after ".js" files

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

Upvotes: 2

Micha Roon
Micha Roon

Reputation: 4007

it is also important to include the html file before the js

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

Upvotes: 12

collimarco
collimarco

Reputation: 35400

Solved! Add this line:

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

Upvotes: 30

Related Questions