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 从另一个Requirejs模块更新Backbonejs模型_Javascript_Backbone.js_Requirejs - Fatal编程技术网

Javascript 从另一个Requirejs模块更新Backbonejs模型

Javascript 从另一个Requirejs模块更新Backbonejs模型,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我通过以下方式在RequireJs模块中创建了Backbonejs模型: define(['model/newmodel']), function (Newmodel) { var newmodel = new Newmodel(); } 我创建了一个新模块,希望在其中更新我的新模型 define(['views/view']), function (View) { // I'd like to modify some properties of the 'newmodel'

我通过以下方式在RequireJs模块中创建了Backbonejs模型:

define(['model/newmodel']), function (Newmodel) {
    var newmodel = new Newmodel();
}
我创建了一个新模块,希望在其中更新我的新模型

define(['views/view']), function (View) {
    // I'd like to modify some properties of the 'newmodel' object here
}

你有什么想法吗?

你可能想这样做:

define(['model/newmodel', 'views/view']), function (NewModel, View) {
    var newmodel = new Newmodel();
    var myView = new View({
        model: newmodel
    });
}

您通常使用requireJS来确保在代码需要时加载“类”,而不是传递实例。

David Sulc的方法当然是一种方法,但如果有充分的理由,您完全可以在Require中传递实例。一般来说,传递类更有意义,但如果您有一个“全局ish”对象,则直接传递它可能更有意义

首先,我要让你的大写字母保持一致:用大写字母命名类和用小写字母命名实例是非常普遍的做法,这将使你将“newmodel”文件/模块重命名为“newmodel:

define(['model/Newmodel']), function (Newmodel) {
    var newmodel = new Newmodel();
}
这样,您就可以使“newmodel”(小写)文件/模块返回实例本身:

定义(['model/Newmodel'])、函数(Newmodel){ var newmodel=newnewmodel(); 返回新模型; }

一旦完成此操作,您的视图就可以对该实例执行任何操作,方法是通过require将其正常引入:

define(['model/newmodel', 'views/view']), function (newmodel, View) {
    // I'd like to modify some properties of the 'newmodel' object here
    modifyPropertiesOf(newmodel)
}

您想如何更新它?这很奇怪,您通常不会使用模块来更新实例。包含这两个定义调用的文件的名称是什么?请记住,您定义的模块是基于这些文件名的。