gpt4 book ai didi

javascript - Hello World - Backbone + Firebase + Backfire

转载 作者:行者123 更新时间:2023-11-28 01:21:15 25 4
gpt4 key购买 nike

我正在尝试创建一个带有主干和 firebase 的简单的 hello world(使用 backfire)。该代码正在将数据插入到 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>

有人可以帮我吗?我想我错过了一些东西(可能很明显),但我看不到它。

谢谢!

最佳答案

当您创建registerView时,您告诉它底层模型是registerList(而不是registerModel)

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

因此,当调用 render 函数时,它会查找 registerListfirstName 属性,而该属性不存在.

似乎您混淆了模型和集合

关于javascript - Hello World - Backbone + Firebase + Backfire,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23230933/

25 4 0
文章推荐: php - 在 CodeIgniter View 中的 标签中显示 PDF