我使用backbone.js和require.js,并且拥有一个父视图和两个子视图。在众多视图中使用backbone.js中的常见默认值
我想要在ParentModel中具有通用的默认值,并拥有共同的逻辑来控制ParentView中的默认值并从子视图中调用ParentView逻辑。代码在这里。
parentView.js
define(
['jquery', 'underscore', 'backbone', 'models/parentModel'],
function($, _, Backbone, ParentModel) {
var ParentView = Backbone.View.extend({
model: new ParentModel(),
initialize: function() {
this.model.on("change:hoge", this.switchHoge);
},
parentSet: function(k, v) {
// context is childen model
// want to set parent model
this.model.set(k, v);
},
switchHoge: function(k, v) {
if (this.model.get("view") == "A") {
console.log("aaaaaaaaaaaa");
} else if (this.model.get("view") == "B") {
console.log("bbbbbbbbbbbb");
}
}
});
return ParentView;
}
);
childView_A
var ChildView_A = ParentView.extend({
model: new ChildModel_A(),
change: function() {
this.parentSet("hoge", "A");
}
}
childView_B.js
var ChildView_B = ParentView.extend({
model: new ChildModel_B(),
change: function() {
this.parentSet("hoge", "B");
}
});
这是parentSet背景是,儿童模式所取代的问题。 所以绑定在ParentView中的函数不会被调用。
如果我将ParentView:model重命名为ParentView:another_model,我可以解决此问题。
但它看起来并不美丽。
在Backbone.js中这是不实际吗? 我做什么?