2012-11-17 12 views
11

ho questo modello:Come aggiungere un modello a corpo in Meteor all'interno di un pacchetto di

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

All'interno di un app Meteor posso aggiungere che questo corpo in questo modo (come parziale):

{{> sample}} 

Funziona. Ho persino provato a chiamare Template.sample(); all'interno della console del browser e funziona.

Quando si sposta questo all'interno del pacchetto (ovvero un file sample.html all'interno della cartella del pacchetto) il modello sembra scomparire: ottengo Template.sample() is not a function ogni volta che chiamo la funzione e non riesco nemmeno a renderlo come parziale.

Ho un package.js con questo codice (e, ovviamente, il pacchetto viene caricata correttamente dentro la mia app attraverso packages file in .meteor):

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

Perchè questo non funziona? Come posso aggiungere un modello (reattivo) al corpo dal mio pacco?

risposta

30

Risolto! Aggiungere questa riga:

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

Un altro problema qui è che se si è scelto di inserire una gran parte della propria app in un pacchetto, è necessario fare attenzione all'ordine di caricamento. È necessario caricare i modelli prima di qualsiasi file JS/coffee correlato o si otterrà un errore di tipo "Il modello non esiste". – dcsan

+4

Devi accettare la tua risposta, quindi la domanda appare come "risolta" ed è meglio classificata :) – MattiSG

12

è anche importante per includere il file html prima della js

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

Corretta, quindi il file JS modello ha accesso al modello definito nell'HTML. –

1

Includere nel file di packages.js del pacchetto di

prima

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

dopo primi file ".html", af ter ".js" files

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