Javascript 如何将模型与视图连接/关联?
我正在将一个应用程序移植到主干上,我不知道如何将我的模型与我的视图联系起来 我想第一个问题是,它是基于一个实例一个实例,还是我可以设置一次,以便每个模型实例(特定类型)都连接到每个视图实例(特定类型) 以下是我的第一个猜测/尝试:Javascript 如何将模型与视图连接/关联?,javascript,backbone.js,view,model,Javascript,Backbone.js,View,Model,我正在将一个应用程序移植到主干上,我不知道如何将我的模型与我的视图联系起来 我想第一个问题是,它是基于一个实例一个实例,还是我可以设置一次,以便每个模型实例(特定类型)都连接到每个视图实例(特定类型) 以下是我的第一个猜测/尝试: /*************************************************************************************************** */ var ModelMediaPane = Back
/***************************************************************************************************
*/
var ModelMediaPane = Backbone.Model.extend({
defaults: {
visible: false,
previous: null,
current: 'about'
}
});
var model_media_pane = new ModelMediaPane();
$A.log(model_media_pane.get('visible'));
var ViewMediaPane = Backbone.View.extend({
id: "mi_holder",
events: {
}
});
var view_media_pane = new ViewMediaPane({model:ModelMediaPane});
$A.log(view_media_pane.el);
你有很多方法可以做到这一点 最简单的一种方法是,在实例化视图时,通过模型实例将模型注入视图中。就像你已经在做的那样。 或 您只需在视图中创建一个名为“model”的变量,并实例化一个新的 模型 回答你的问题, 如果使用同一个模型实例实例化2个视图(任意类型)。两个视图的模型相同。这意味着,如果viewA和viewB正在侦听同一模型的事件,它们都将对同一事件做出反应 例如:
var modelA = new ModelA();
var ViewA = new ViewA({model:modelA});
var ViewB = new ViewB({model:modelA});
如果您在modelA中更改了某些内容,两个视图都会做出反应
它使您有可能有两个视图侦听同一模型的两个不同实例,这对我来说没有意义,但取决于您的规则