想知道在视图实例化后如何添加模型视图?我已经创建了一个switch语句来创建正确的视图,但是一旦完成,我想绑定模型?我试过set
和view.model = model
没有成功?
JS
var type = 'typeOne';
var MyModel = Backbone.Model.extend();
var ViewTypeOne = Backbone.View.extend();
var ViewTypeTwo = Backbone.View.extend();
var model = new MyModel({
'name': 'James Bond'
});
var newView;
switch (type) {
case 'typeOne':
newView = new ViewTypeOne();
case 'typeTwo':
newView = new ViewTypeTwo();
}
newView.model = model;
console.log('After', newView.model.toJSON());
答案 0 :(得分:1)
我不确定是否/如何将模型绑定到实例化视图,但我知道如何通过以下几种方式之一解决问题:
在switch
中实例化视图时,将模型作为参数传递:
var model = {model: this.model};
var newView;
switch (type) {
case 'typeOne':
newView = new ViewTypeOne(model);
case 'typeTwo':
newView = new ViewTypeTwo(model);
}
在switch
中选择视图类型,然后使用模型进行实例化:
var viewType;
switch (type) {
case 'typeOne':
viewType = ViewTypeOne;
case 'typeTwo':
viewType = ViewTypeTwo;
}
var newView = new viewType({model: this.model});
使用地图将名称链接到类型,并摆脱switch
:
var views = {
'typeOne': ViewTypeOne,
'typeTwo': ViewTypeTwo
}
var newView = new views[type]({model: this.model});
答案 1 :(得分:0)
也许是new ViewTypeOne({ model: this.model })
?
您可能希望在传递模型的情况下实例化视图,因为在某些情况下,初始化需要模型。