Инициализировать класс coffeescript (backbone) из HTML - PullRequest
0 голосов
/ 01 апреля 2012

Это может оказаться глупой опечаткой, но только в том случае, если есть ошибка по этому поводу. Я только начинаю с CoffeeScript внутри приложения рельсов.

Я создал класс PeopleView в people.js.coffee:

.
class PeopleView extends Backbone.View
....

Я пытаюсь инициализировать его из файла HTML:

<script language="text/javascript">
   $(document).ready(function() {
        var view = new PeopleView();
   });
</script>

Я получаю сообщение об ошибке, что PeopleView не определен. Я вижу в скомпилированном application.js, что PeopleView определен. Есть ли что-то, что нужно сделать, чтобы инициализировать классы вне файла coffeescript?

- Изменить

Я только что заметил, что набрал

window.PeopleView = PeopleView 

в нижней части файла people.js.coffee будет работать. Это хороший метод?

1 Ответ

1 голос
/ 01 апреля 2012
window.PeopleView = PeopleView 

Да, это правильный метод.Код CoffeeScript будет скомпилирован в вызов анонимной функции, поэтому все объявления будут ограничены областью действия этой функции, если только вы не сделаете их видимыми во внешней области, назначив свойству окна.

Это помогает предотвратить случайную перезапись глобальногопеременные.

...