我正在尝试使用Backbone和Firebase构建一个基本应用程序:
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 :(得分:2)
这里有几件事。
BackboneFire(正式BackFire)已经更新为0.5版本并进行了大量更新。您可以使用firebase
属性来指定Firebase参考,而不是使用url
属性。
请勿将Backbone.Firebase.Model
与Backbone.Firebase.Collection
一起使用。集合可以管理它的模型事件。在0.5模型中,Backbone.Firebase.Collection
中的模型具有可以处理其对Firebase的更新的firebase引用。
这里的问题是你正在尝试同步原始值,在这种情况下是一个字符串。
不是同步字符串而是升级一级并同步对象。 Backbone代表模型而不是原始代码。因此,BackboneFire中同步的所有内容也必须是一个对象。