2013-10-22 13 views
0

我是Backbone框架的新手。我寫了模型和觀點在骨幹。它給我的語法錯誤或作爲「SyntaxError:函數語句需要一個名稱 - > initObj:function(height,width){」while running。SyntaxError:函數語句在Backbone中需要名稱

這裏是我的骨幹視圖代碼

selectTable = Backbone.View.extend({ 
    render: function() { 
    var height= 50; 
    var width= 56; 
     if (true) { 
      initObj(chartHeight); 
     } 
     initObj: function (height, width) { 
     console.log("inside initObj"); 
     } 
     var selector = this.$el.find("select.clg-selection"); 
     selector.html("<option>testtest</option>"); 
    } 
}); 

這裏我打電話「initObj」的功能,但它給我的語法錯誤。任何人都可以告訴我我在這裏犯了什麼錯誤?

回答

1

initObj函數未在render內部定義。 initObj被定義爲對象特性,因此其應被放置的對象的內部:

selectTable = Backbone.View.extend({ 
    render: function() { 
     var height= 50; 
     var width= 56; 
     if (true) { 
      this.initObj(chartHeight); 
     } 
     var selector = this.$el.find("select.clg-selection"); 
     selector.html("<option>testtest</option>"); 
    }, 
    initObj: function (height, width) { 
     console.log("inside initObj"); 
    } 
}); 

替代地,可以定義initObj像:

initObj = function (height, width) { 
    console.log("inside initObj"); 
} 

和離開它裏面render,但第一個是更多Backbone-ish。

+0

感謝您的信息。在我做了如上所述的更改後,我得到「我得到一個」ReferenceError:initObj沒有定義「 - 一切看起來都是正確的。可能是什麼問題? – ezhil

+0

你還在收到」ReferenceError:initObj沒有定義「嗎?的解決方案應該工作,如果不會創建一個jsfiddle –

+0

是的Akoskm,第二個解決方案工作正常,你能告訴我這兩個聲明有什麼優點/區別嗎?或者它們應該使用什麼目的? – ezhil