Hello World - Backbone + Firebase + Backfire

时间:2014-04-22 21:55:26

标签: javascript jquery json backbone.js

我试图用骨干和firebase创建一个简单的hello世界(使用逆火)。代码正在努力将数据插入到firebase中,但是当我尝试获取数据并填充模板时,它会显示" Uncaught ReferenceError:firstName未定义"。在调试时,我可以看到带有数据的对象,但我不知道如何使用此对象提供模板。

以下是代码:

$(document).ready(function(){

    var registerModel = Backbone.Model.extend({
        defaults: {
            firstName: '',
            lastName: ''
        }
    });

    var registerColletion = Backbone.Firebase.Collection.extend({
        model:registerModel,
        firebase: new Firebase("https://XXXXXXXX.firebaseio.com/")
    });

    var registerView = Backbone.View.extend({

        el: $("#myTest"),
        itemTemplate: _.template($('#item-template').html()),
        events: {
            "click #btnSave": "saveToFirebase"
        },
        initialize: function () {
            this.listenTo(registerList, 'add', this.render);
        },
        render: function(){
            $('#divContent').html(this.itemTemplate(this.model.toJSON()));
        },
        saveToFirebase: function () {
            registerList.add({firstName: $("#txtFirstName").val(), lastName: $("#txtLastName").val()});
        }
    });

    var registerList = new registerColletion;
    var app = new registerView({model:registerList});
});

异常的确切点在渲染函数上:

render: function(){
            $('#divContent').html(this.itemTemplate(this.model.toJSON()));
        },

模板:

<script type="text/template" id="item-template">
    <div class="view">
        <p>
            <%- firstName %> <%- lastName %>
        </p>
    </div>
</script>

任何人都可以帮助我吗?我想我错过了一些东西(可能很明显)但我无法看到它。

谢谢!

1 个答案:

答案 0 :(得分:1)

当您创建registerView时,您告诉它基础模型是registerList(不是registerModel

var app = new registerView({model:registerList});

因此,当调用render函数时,它正在寻找firstName的{​​{1}}属性,并且该属性不存在。

好像你已经把模特和收藏品搞混了