在backbone.js中获取后如何查看模型数据
How do I view model data after fetch in backbone.js
我对来自knockout.js的主干有点陌生,我正在努力克服这个简单的困难。我有这个代码:
$(function(){
window.Student = Backbone.Model;
window.Students = Backbone.Collection.extend({
model: Student,
url: 'test.php'
});
window.students = new Students();
window.AppView = Backbone.View.extend({
el: $('#container'),
initialize: function() {
Students.bind('reset', this.render);
},
render: function(){
console.log(Students.toJSON());
}
});
window.appview = new AppView();
$('#test').click(function(){
//var students = new Students();
students.fetch();
var q = students.toJSON();
console.log(q);
/*
students.create({
name: 'John',
grade: 'A'
}); */
})
});
我的服务器发送以下JSON:
[{"id": "1233","name": "Karen","grade": "C"},{"id": "1234","name": "Susan", "grade": "F"}]
当我点击按钮并在Chrome中查看控制台时,我看到:
第一次点击:
[] - Corrected -just an empty array
第二次点击:
[
Object
grade: "C"
id: "1233"
name: "Karen"
__proto__: Object
,
Object
grade: "F"
id: "1234"
name: "Susan"
__proto__: Object
]
第一个问题是为什么需要点击两次?第二:我如何简单地将等级(作为集合和id)分配/绑定到文本框、<li>
或其他UI元素(更好的是在ajax弹出时使其可见)。
您看到的控制台消息来自点击事件处理程序。永远不会调用来自render方法的控制台消息。
您在第一条日志消息中看不到任何内容,因为fetch
是一个异步方法,所以当您在fetch
之后立即调用toJSON
时,尚未从fetch方法填充集合。
为了使代码按预期工作,您需要对代码进行一些更改。
首先,您需要在实例化视图时传入集合
//original
window.appview = new AppView();
//new
window.appview = new AppView({ collection: window.students });
然后,在视图中,您需要绑定到传递给构造函数的集合上的重置事件。(你必须绑定到一个实例化的对象,而不是像最初那样绑定到对象的定义)
window.AppView = Backbone.View.extend({
el: $('#container'),
initialize: function() {
_.bindAll(this, 'render');
this.collection.bind('reset', this.render);
},
render: function(){
console.log(this.collection.toJSON());
}
});
现在,在单击事件中注释掉控制台日志消息,然后您只需要单击一次,就会看到来自render方法的控制台日志消息。
$('#test').click(function(){
//var students = new Students();
students.fetch();
//var q = students.toJSON();
//console.log(q);
/*
students.create({
name: 'John',
grade: 'A'
}); */
})
相关文章:
- 我应该如何检查主干.主干.模型更改时查看
- Aurelia绑定-点击按钮返回查看模型
- 从模型传递id以查看Backbone.js
- 如何在HTML5中查看3D模型
- backbone.js可以't传递集合中的模型项's查看项目's视图
- 绑定子模型以在骨干/木偶中查看
- 构建淘汰模型并动态查看,不设置单选按钮
- 如何将值与$scope绑定,以从定义状态ui路由器的控制器中使用ng模型进行查看
- Jquery'在'单击以查看引导程序模型对话框
- Ember.js查看模型
- 如何在开始查看之前等待模型初始化
- 骨干JS,绑定模型查看
- 使用 Angular JS 查看模型验证
- 按钮点击绑定并查看模型封装
- 在backbone.js中获取后如何查看模型数据
- 查看视图中控制器的模型数据[sap ui5]
- SAPUI5查看视图中的模型属性
- 如何在使用jQuery改变控件的值时获取查看模型的值
- Vue.js查看模型并在不同的文件中拆分
- 无法在ui5应用程序的详细信息页面中查看模型信息