【发布时间】:2015-09-22 18:56:29
【问题描述】:
我创建了一个简单的骨干图书库项目,它有 1 个模型、视图、集合。当我从集合中获取数据时,我将处理 JSON 数据并将处理后的数据设置为集合中的一个变量,以在 Google 图表中显示它。如何在 Backbone 中监听处理后的变量变化?
这是我的代码
型号
var BookModel= Backbone.Model.extend({
defaults:{
id:'',
name: '',
author: ''
}
});
收藏
var BookCollection= Backbone.Collection.extend({
model: BookModel,
initialize: function(){
this.fetchData();
},
fetchData: function(){
this.url= "/get/all_books";
this.fetch({
success: success_callback,
error: error_callback
})
},
success_callback: function(that, data){
var chart_data=[];
//Process logic goes here. chart_data has the data i need
// I need to listen this.chart_data value change in view
this.chart_data= chart_data;
},
error_callback: function(){
}
});
查看
var BookView= Backbone.View.extend({
initialize: function(){
this.collection= new BookCollection();
}
drawChart: function(){
//Google Chart Goes here, when ever the chart_data variable changes
}
});
如果我的任何代码约定不好,请纠正我。谢谢
【问题讨论】:
-
所以你需要在你的模型上设置一个变化监听器。这是一篇关于这样做的一些注意事项的好文章。 ozkatz.github.io/avoiding-common-backbonejs-pitfalls.html
-
如何在我的模型中设置更改监听器?
标签: javascript backbone.js model-view-controller