更新:事实证明,我有一个剩余的this.model = new MasterModel();在我的subViews initialize()函数中。
我试图将我的巨大视图与较小的视图分开,因此我创建了一个“主”布局视图,它将一些子视图附加到自身并将其模型传递给它们。
但是,似乎当我的子视图更新模型时,这些更改不会反映在“主”视图的模型上。
这就是我想要做的事情:
var master = new MasterModel();
var masterView = new MasterView({model:master});
在masterView initialize()函数内部,我这样做:
function: initialize() {
this.subView = new subView({model:this.model});
}
在subView中更改模型的代码是:
function: setCurrency() {
this.model.set({ currency: this.$('.currency').val() });
}
也许我在这里做错了什么?
答案 0 :(得分:0)
您的网页上有多少类“货币”?
我认为this.$('.currency').val()
意味着你的意思。我想你想要$(this.el).find('.currency').val()
之类的东西(你使用的是0.9.1吗?那么你可以将它缩短为$el.find('.currency').val()
)。你所拥有的将永远抓住页面上的第一项与“货币”类。 this.$
只是对通常是全局Zepto或jQuery对象的便利引用。因此,我的问题。 击>
编辑:等待回答澄清问题。
答案 1 :(得分:-1)
让您的模型全局化,而不是:
var master = new MasterModel();
使用
window.master = new MasterModel();
然后将其传递给子视图
function: initialize() {
this.subView = new subView({model:window.master});
}