ile küresel sınıflar Meteor 0.6.0 sürümü ve file-level JavaScript variable scoping eklendiğinden beri, her biri kendi dosyasında tanımlanmış olan CoffeeScript sınıflarını kullanarak bir sorunla karşı karşıyayım.Meteor> 0.6.0 ve CoffeeScript
foo.coffee:
class Foo
...
subfoo.coffee:
class Subfoo extends Foo
...
Beklendiği gibi
, çünkü Meteor 0.6.0 tanıtılan değişikliklerin, aşağıdaki hatayı alıyorum:
ReferenceError: Foo is not defined
İşte sorum şu: CoffeeScript ve Mete ile dosyalarda sınıf tanımlarını nasıl ele almalı? veya> 0.6.0? İdeal: 'un, bu tanımların (ve uygulamamın çekirdek kısımlarının) Meteor'a bağlı olmadığından emin olmak için sınıfların tanımlanma şeklini çok fazla değiştirmek için uygun bir yol var mı? docs arasında CoffeeScript bölümünde belirtildiği gibi
çözümünüzü uygulamaya çalışırken, fark ettim 'olduğunu foo.coffee 'dizin yapısındaki yanlış yere yerleştirildi ve Meteo'nun yükleme emri kuralları nedeniyle' subfoo.coffee 'içinde' Foo 'sınıfı görünmezdi. 'Foo.coffee' öğesini daha uygun bir dizine taşıdıktan sonra, 'class @ Foo' ve 'class @ Subfoo Foo' çalışmalarını kullanır [not: '@' den sonra bu yoruma eklenen boşluklar). Bununla birlikte, tüm uygulama sınıflarımı ve önek sınıfı adlarını her yerde '@' ile düzenlemek zorunda kaldığım için hala biraz endişeliyim - ancak şimdilik bununla yaşayacağım! Teşekkür – jbmusso
Ah bu ilginç. Bunun geçerli bir CoffeeScript olduğunu bilmiyordum. Dokümanlar içinde belirtilmemiş başka bir tidbit ... –
Ben js2coffee.org ile oynadı kadar ya geçerli bir CoffeeScript olduğunu bilmiyordum. Soruyu buna göre düzenledim ve kendi (hatalı ve yanıltıcı) teklifimi kaldırdım. 'Class @Foo extends Subfoo' çözümünü eklemek için cevabınızı düzenlemenizi öneririm! – jbmusso