我正在尝试从子视图向父视图添加新模型。
在我的父视图中,我像这样渲染子视图:
renderEngineOptions: function () {
var view = new EngineOptionsView({ model: this.model });
this.$('.engineOptions').append(view.render().el);
},
在我的子视图(engineOptionsView)中,我在initialize方法中将父类定义为'this.engine':
initialize: function (args) {
this.engine = args.model;
}
然后我有一个html按钮,点击后会触发此事件:
addTurbo: function() {
this.$('.turboOption').show();
this.engine.turbo = new Turbo();
}
Turbo是我试图添加到引擎的新模型。但没有任何反应。我在控制台中没有出错,但是当我在控制台中写出引擎模型时,没有添加任何turbo。
如何从孩子那里将turbo模型添加到父级?
谢谢!
答案 0 :(得分:1)
当您使用model
选项传递模型时,视图会自动将其应用于自身,因此可以直接通过this.model
获取。
var view = new EngineOptionsView({ model: this.model });
在孩子身上:
initialize: function (args) {
this.engine = args.model; // not necessary
console.log(this.model === this.engine); // same thing
}
您正在添加turbo
作为模型的属性
this.engine.turbo = new Turbo();
所以,如果你想从父母那里得到turbo
:
this.model.turbo;
如果要从子视图中添加turbo
作为模型的属性:
this.model.set('turbo', new Turbo());
从父母那里得到它:
this.model.get('turbo);
如果没有更多细节,很难猜出问题的来源。