想知道当 View 已经实例化时如何添加模型 View ?我创建了一个 switch 语句来生成正确的 View ,但是完成后我想绑定(bind)模型?我尝试过 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());
最佳答案
我不确定是否/如何将模型绑定(bind)到实例化 View ,但我确实知道如何通过以下几种方式之一解决问题:
在
switch
中实例化 View 时将模型作为参数传递:var model = {model: this.model}; var newView; switch (type) { case 'typeOne': newView = new ViewTypeOne(model); case 'typeTwo': newView = new ViewTypeTwo(model); }
在
开关
中选择 View 类型,然后使用模型实例化:var viewType; switch (type) { case 'typeOne': viewType = ViewTypeOne; case 'typeTwo': viewType = ViewTypeTwo; } var newView = new viewType({model: this.model});
使用映射将名称链接到类型,并摆脱
开关
:var views = { 'typeOne': ViewTypeOne, 'typeTwo': ViewTypeTwo } var newView = new views[type]({model: this.model});
关于javascript - 实例化 View 后将 Backbone 模型分配给 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32790784/