2011-04-22 45 views
28

考慮這個標記當使用Backbone.View一個 「parent.apply是不是一個功能」 返回錯誤

<div id="controls" class="controls"> 
    <a href="#">Home</a> - 
    <a href="#/get">get</a> - 
    <a href="#/new">new</a> 
    <input type="text" val="" id="input"> 
</div> 

而且這段JavaScript代碼:

$(document).ready(function() { 
    "use strict"; 

    // this is used on my code as root.App, 
    // but the code was omitted here for clarity purposes 
    var root = this, 
    undefined; 

    var controller = Backbone.Controller.extend({ 

    routes : { 
     // static 
    }, 
    }); 

    var view = new Backbone.View.extend({ 
    el : $('#controls'), 
    events : { 
     'click a' : 'updateOnEnter' 
    }, 

    updateOnEnter : function(el) { 
     alert('sss'); 
     return this; 
    }, 

    initialize : function() { 
     _.bindAll(this, 'render', 'updateOnEnter'); 
    }, 

    render : function() { 
     return this; 
    } 
    }); 

    new view; 
    new controller; 
    Backbone.history.start(); 
)}; 

view被稱爲(帶new view),螢火蟲觸發此錯誤:

parent.apply is not a function 
error backbone.js (line 1043): child = function(){ return parent.apply(this, arguments); }; 

任何想法,爲什麼發生這種情況?謝謝。

回答

86

沒關係。

的問題是在上述的js代碼行16:

var view = new Backbone.View.extend({ 

應該改爲:

var view = Backbone.View.extend({ 

我不會刪除這個問題,因爲有人可能會發現它有用。我想不是來自CS背景的陷阱。

+0

我做到了。這是一個愚蠢的錯誤,但我做到了,yayyy:D感謝您發佈這個! – Nischal 2011-04-23 17:44:16

+0

我已經失去了一個小時尋找bug ... PLZ不刪除它:D – 2012-03-21 22:32:52

+1

我犯了同樣的錯誤!谷歌讓我直接看到這篇文章;)謝謝。 – egis 2012-05-11 16:43:21

相關問題