Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将模型与视图连接/关联?_Javascript_Backbone.js_View_Model - Fatal编程技术网

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中更改了某些内容,两个视图都会做出反应

它使您有可能有两个视图侦听同一模型的两个不同实例,这对我来说没有意义,但取决于您的规则