我试图用骨干和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>
任何人都可以帮助我吗?我想我错过了一些东西(可能很明显)但我无法看到它。
谢谢!
答案 0 :(得分:1)
当您创建registerView
时,您告诉它基础模型是registerList
(不是registerModel
)
var app = new registerView({model:registerList});
因此,当调用render
函数时,它正在寻找firstName
的{{1}}属性,并且该属性不存在。
好像你已经把模特和收藏品搞混了