Jestem nowy w meteor i coffeescript. Korzystam z układu plików sugerowanego w FAQ nieoficjalnych meteorów. W zbiorach plików/C.coffee mamW meteorrze 0.6.4.1/coffeescript, jak działa zmienna widoczność?
C = new Meteor.Collection 'C'
console.log "C: #{C}"
w pliku serwera/main.coffee mam
C.insert {test: 'test'}
Kiedy zacznę meteor, widzę na konsoli:
C: [object Object]
ReferenceError: C is not defined
at app/server/main.coffee.js:5:1
at /home/xxx/yyy/.meteor/local/build/server/server.js:298:12
Jak zrobić C dostępnym w plikach poza kolekcjami/C.coffee?
Aktualizacja: dodanie @ do C rozwiązuje problem na najwyższym poziomie. Jednak to jeszcze nie powiedzie się z:
Meteor.methods
test: (statement) ->
@C.insert {test: 'test'}
To nie powiedzie się z powodu błędu TypeError: Cannot call method 'insert' of undefined
http://stackoverflow.com/questions/15831144/global-classes-with-meteor-0-6-0-and-coffeescript trzeba użyć @ przed C – Suburbio
Dzięki, Subrubio. Wszelkie sugestie dotyczące mojego zaktualizowanego przykładu? – Jerry
Musisz tylko użyć @/this podczas ustawiania zmiennej globalnej. – Suburbio