2013-11-26 49 views
26

。:編輯:。 如果你有同樣的問題檢查你的變量初始化,我忘了javascript - Coffeescript&Backbone.js - TypeError:this._ensureElement不是函數

我不斷收到類型錯誤:this._ensureElement不是一個函數並獲得類型錯誤: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() 
+0

錯誤是哪一行? – Mathletics

回答

58

您錯過了new運算符。

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

我期待着一些愚蠢的錯誤,我只是沒有想到它會變得愚蠢。 –

+4

我很快就知道了答案,因爲我多次做過同樣的事情;) –

+0

我的上帝讓我感到無聊。謝謝你節省我這麼多時間! –

0

咖啡腳本,如果你使用助手來初始化你可以運行的觀點爲以下幾點:

@createSubView ViewClass 
    model: model 

咖啡腳本就不會因爲某些原因。但js輸出會導致問題。

以下修復問題

@createSubView ViewClass, 
    model: model 

我希望這有助於。 這可能是Coffee-Script團隊的一張票...

相關問題