2013-07-13 16 views
7

Ho una bella struttura semplice app che contengono tali librerieMeteor dove definire la mia collezione?

server - contengono alcune configurazioni per il routing e ENV

client - contenere modelli (<template name=".*"></template>) & file JS per ogni template

collections

ora all'interno delle raccolte ho un file chiamato "Albums.js" e ha un contenuto piuttosto semplice

var Albums = new Meteor.Collection("Albums");

ora dentro la mia cartella del client Sto cercando di accedere a questa variabile Albums e sto ottenere errore non definito.

il mio obiettivo è quello di prendere i dati da form e passarlo al collection.insert

risposta

12

Non utilizzare var se non lo si desidera privato per quel file.

Album = new Meteor.Collection ("Album");

4

variabili definite con var parola chiave sono locali al file che stanno definiti. Se si desidera una variabile globale, condiviso tra i file, è necessario per definirlo senza la parola chiave var.

Sembra che non è nel documento, ma è nel file https://github.com/meteor/meteor/blob/master/History.md (per la versione 0.6.0):

variabili dichiarate con var al livello più esterno di un file sorgente JavaScript sono ora privato a quel file. Rimuovere la var per condividere un valore tra i file.

Fondamentalmente, ogni file JS è incapsulato nel modello (function(){ ... })(); per fornire questo incapsulamento.

5

un altro modo per definire le variabili globali è creare un nuovo file, ad es. collections.js e metterlo direttamente nella tua cartella principale app (non in qualsiasi sottocartella!)

In questo file è possibile definire variabili/raccolta globale (senza var parola chiave)

+0

In realtà, si potrebbe desiderare di mettere in ' cartella lib' per assicurarsi che sia caricata prima della maggior parte degli altri script. – Domi

Problemi correlati