骨干侦听模型中的对象变化 [英] backbone listen to object changes in model
本文介绍了骨干侦听模型中的对象变化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以收听Model中一个对象的任何更改吗? 我知道如何侦听模型更改,但是我只需要侦听模型和视图中的对象.
Can I listen to any changes in one object in Model? I know how to listen model changes, but I need only to listen objects in model and view.
var view = Backbone.View.extend({
func: {},
initialize: function () {
this.listenTo(this.func, 'change', function(select){
console.log(select.changed) //NEED TO SHOW ON ADDING ANY DATA TO this.func
})
this.func['asd'] = 'asdasd';
}
})
推荐答案
这正是模型的用途-不仅从服务器获取数据,而且还在应用程序周围传递数据.
This is exactly what models are for - not just fetching data from a server but also passing data around your app.
当您想了解某些数据的更改时,您无需使用属性即可创建自定义变量.
When you want to be informed about changes to some data you don't create a custom variable you use attributes.
var MyModel = Backbone.Model.extend({
initialize: function() {
// Listen to changes on itself.
this.on('change:asd', this.onAsdChange);
},
onAsdChange: function(model, value) {
console.log('Model: Asd was changed to:', value);
}
});
var MyView = Backbone.View.extend({
initialize: function() {
// Listen to changes on the model.
this.listenTo(this.model, 'change:asd', this.onAsdChange);
},
onAsdChange: function(model, value) {
console.log('View: Asd was changed to:', value);
}
});
var myModel = new MyModel();
var myView = new MyView({
model: myModel
});
myModel.set('asd', 'something');
myModel.set('asd', 'something else');
提琴: http://fiddle.jshell.net/ferahl/4fxtZ/
这篇关于骨干侦听模型中的对象变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文