1

我正在尝试使用 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 并遇到不同的错误。

4

1 回答 1

2

这里有几件事。

  • BackboneFire(以前称为 BackFire)已更新到 0.5 版本,其中包含大量更新。而不是使用firebaseurl属性来指定您的 Firebase 引用。

  • 不要将 aBackbone.Firebase.Model与 a 一起使用Backbone.Firebase.Collection。一个集合可以管理它的模型事件。在 0.5 模型中,a 中的模型Backbone.Firebase.Collection具有可以处理其对 Firebase 的更新的 firebase 引用。

这里的问题是您正在尝试同步一个原始 value,在这种情况下是一个字符串。

而不是同步字符串上一级并同步对象。Backbone 代表模型而不是基元。因此,在 BackboneFire 中同步的所有内容也必须是一个对象。

于 2014-11-22T00:54:37.033 回答