Reference Backbone.js:通过引用将模型传递到子视图

Reference Backbone.js:通过引用将模型传递到子视图,reference,model,backbone.js,subview,Reference,Model,Backbone.js,Subview,更新:事实证明,我有一个剩余的this.model=newmastermodel();在我的子视图中初始化()函数 我试图将我的大视图和小视图分开,因此我创建了一个“主”布局视图,它将一些子视图连接到自身,并将其模型传递给它们 但是,当我的子视图更新模型时,这些更改似乎不会反映在“主”视图的模型上 以下是我正在尝试做的: var master = new MasterModel(); var masterView = new MasterView({model:master}); 在maste

更新:事实证明,我有一个剩余的this.model=newmastermodel();在我的子视图中初始化()函数

我试图将我的大视图和小视图分开,因此我创建了一个“主”布局视图,它将一些子视图连接到自身,并将其模型传递给它们

但是,当我的子视图更新模型时,这些更改似乎不会反映在“主”视图的模型上

以下是我正在尝试做的:

var master = new MasterModel();
var masterView = new MasterView({model:master});
在masterView initialize()函数中,我执行以下操作:

function: initialize() {
    this.subView = new subView({model:this.model});
}
在子视图中更改模型的代码如下:

function: setCurrency() {
    this.model.set({ currency: this.$('.currency').val() });
}

也许我在这里做错了什么?

你的页面上有多少“货币”类的东西

我认为
这个。$('.currency').val()
并不是你认为它的意思。我认为您需要类似于
$(this.el).find('.currency').val()
(您使用的是0.9.1吗?那么您可以将其缩短为
$el.find('.currency').val()
)。你所拥有的东西总是会在页面的第一个项目中包含“currency”类
this.$
只是一个方便的引用,它通常是全局Zepto或jQuery对象。因此,我的问题是


编辑:等待澄清问题的答复。

使您的模型成为全局模型,而不是:

var master = new MasterModel();
使用

然后将其复制到子视图中

function: initialize() {
    this.subView = new subView({model:window.master});
}

到目前为止,我没有发现你的代码有任何问题。您确定没有更新模型吗?或者可能是更新没有反映在视图中的问题?模型有一些事件,您可以绑定到“更改”上,以更新视图。我能看看模型的事件绑定吗?它在更新时会做什么?@JayC:是的,我是肯定的。我在主视图中有一个按钮,它的click事件附带了一个警报(JSON.stringify(this.model.toJSON())。单击该按钮时,JSON哈希不包含我在子视图中所做的更改。请显示实际用于修改模型的代码。@JayC:我已根据您的请求更新了问题。我知道。这不是问题所在。当我在子视图中设置模型值后检查子视图中的模型值时,正如我所预料的那样,它们已经更改。但是,当我在masterView中检查模型值时,它们没有改变。好的,好的,所以。。。我们这里讨论的是两个模型,还是一个?因为只有一个模型是不可能的,这让我很困惑。根据您在上述问题中的解释,它应该是每个视图都要引用的一个模型实例,但您在这里描述的显然不是一个模型实例。很抱歉,因为事实证明我有一个this.model=new.MasterModel();在我的子视图中初始化()函数。太蠢了。。。
function: initialize() {
    this.subView = new subView({model:window.master});
}