我使用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中這是不實際嗎? 我做什麼?