2014-11-05 145 views
1

我试图用骨干网和火力地堡建立一个基本的应用程序:火力地堡和骨干

http://jsfiddle.net/C9wew/6324/

var counter = 0; 

var Box = Backbone.Firebase.Model.extend({ 
    defaults: { 
     number: 0 
    }, 
    //firebase: new Firebase('https://backbone-firebase.firebaseio.com/box') 
}); 

var BoxList = Backbone.Firebase.Collection.extend({ 
    model: Box, 
    firebase: new Firebase('https://backbone-firebase.firebaseio.com/') 
}); 

var Boxes = new BoxList; 

var AddBox = Backbone.View.extend({ 
    el: $('#addBox'), 
    events: { 
     "click" : 'addBox' 
    }, 
    addBox: function() { 
     console.log("adding box"); 
     Boxes.add({ 
      number: counter 
     }); 
     counter = counter+1; 
    } 
}); 

var addBox = new AddBox(); 

错误堆栈跟踪:

Uncaught TypeError: undefined is not a function backfire.min.js:1 

b.Firebase.Collection.b.Collection.extend.constructor backfire.min.js:1 
d backbone-min.js:27 
(anonymous function) (index):56 
jQuery.event.dispatch jquery-git2.js:4397 
elemData.handle jquery-git2.js:4076 

Uncaught TypeError: Cannot assign to read only property 'id' of 1 backfire.min.js:1 
a.extend._childAdded backfire.min.js:1 
(anonymous function) firebase.js:93 
ic firebase.js:43 
Wd firebase.js:93 
Ud.Jb firebase.js:93 
Xd.Jb firebase.js:94 
(anonymous function) firebase.js:109 
(anonymous function) firebase.js:59 
cc firebase.js:55 
R firebase.js:59 
(anonymous function) firebase.js:109 
Sa firebase.js:23xe firebase.js:109 
W firebase.js:109 
h.hc firebase.js:117 
h.gc firebase.js:85 
dd.gc firebase.js:76 
(anonymous function) firebase.js:74 
Lc firebase.js:58 
W.onmessage firebase.js:57 

问题是,我得到一个Firebase出现很多奇怪的错误。我已经读过Firefox中存在的奇怪错误,但现在我正在使用Chrome并得到不同的错误。

+0

你得到了什么错误?请在你的问题中包含完整的错误信息。为此目的下面有一个“编辑”链接。 – 2014-11-05 18:56:21

+0

版本信息对于这样一个难懂的错误也是至关重要的。请参阅[创建mcve](http://stackoverflow.com/help/mcve)以获得一些关于措辞问题的帮助。 – Kato 2014-11-07 17:31:46

回答

2

这里有几件事。

  • BackboneFire(正式BackFire)已更新到0.5版本,并有很多更新。您可以使用url属性来指定Firebase参考,而不是使用firebase属性。

  • 请勿使用Backbone.Firebase.ModelBackbone.Firebase.Collection。一个集合可以管理它的模型事件。在0.5模型中,Backbone.Firebase.Collection中的模型具有可以处理Firebase更新的Firebase参考。

这里的问题是,你准备尝试同步的原始值,在这种情况下的字符串。

而不是同步字符串去上一层并同步对象。主干代表模型而不是原始的。因此,在BackboneFire中同步的所有东西也必须是一个对象。