Подтвердить что ты не робот

Javascript - Coffeescript & Backbone.js - TypeError: this._ensureElement не является функцией

: EDIT:. Если у вас такая же проблема, проверьте свою инициализацию переменных, я забыл о новых.

Я продолжаю получать TypeError: this._ensureElement не является функцией и получил TypeError: this._reset не является функцией раньше, но я не могу реально воссоздать точную настройку для последнего.

У меня есть мои скрипты в правильном порядке:

<script src="js/components/jquery.js"></script>
<script src="js/components/underscore.js"></script>
<script src="js/components/backbone.js"></script>
<script src="js/script.js"></script>

Моя модель зарегистрирована до моей коллекции.

Это приложение для корзины покупок.

#namespacing

App =
  Collection : {}
  Model : {}
  View : {}

###
MODEL
###

class ModelItem extends Backbone.Model

  #default values

  defaults:
    name : 'Product Name' 
    quantity : 0
    unit : 'kg'

  #Increase or decrease the quantity

  change_quantity : (type) ->
    qty = @get 'quantity'
    @set 'quantity', if type is 'increase' then ++qty else --qty

###
COLLECTION
###

class CollectionItems extends Backbone.Collection

  model: ModelItem

###
VIEW
###

class ViewItems extends Backbone.View

window.view = ViewItems()
window.item = ModelItem()
4b9b3361

Ответ 1

Вам не нужен оператор new.

window.view = new ViewItems()
window.item = new ModelItem()

Ответ 2

При использовании кофе script, если вы используете помощники для просмотра init, вы можете столкнуться с следующим:

@createSubView ViewClass
   model: model

Кофе- script по какой-то причине не будет жаловаться. Но выход js вызовет проблемы.

После исправления проблемы

@createSubView ViewClass,
   model: model

Надеюсь, это поможет. Это может быть билет для команды Coffee- script...