我有一个基本模型,例如:
define(['backbone', 'relational'], function(Backbone, Relational) {
var resultEntityModel = Backbone.RelationalModel.extend({
defaults : {
bgOccurence : "",
fgOccurence : "",
},
initialize : function() {
var bgOccurence = this.set("bgOccurence",this.get("bgOccurence"));
var fgOccurence = this.set("fgOccurence",this.get("fgOccurence"));
}
});
return resultEntityModel;
});
观点:
define(['marionette', 'js/models/result/result.entity.model', 'text!templates/result/result.entity.panel.html'], function(Marionette, ResultEntityModel, ResultEntityPanel) {
var resultEntityView = Marionette.CompositeView.extend({
tagName : "tr",
template : ResultEntityPanel,
initialize: function () {
this.model.on("change:fgOccurence", function() { console.log("hello"); });
}
});
return resultEntityView;
});
但是这段代码不会向控制台打印hello。我找不到问题,但我很确定观看不听变化事件,但为什么?谢谢你的帮助。
答案 0 :(得分:0)
当您将模型传递给视图时,它已经初始化,属性设置,触发更改事件。 尝试创建模型的实例(没有使用requirejs语法,只是基于局部变量的伪代码):
var model = new resultEntityModel();
var view = new resultEntityView({model: model});
model.set('bgOccurence', 'new value to bg');
现在你可以看到控制台日志。