Javascript 从另一个Requirejs模块更新Backbonejs模型
我通过以下方式在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'
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)
}
您想如何更新它?这很奇怪,您通常不会使用模块来更新实例。包含这两个定义调用的文件的名称是什么?请记住,您定义的模块是基于这些文件名的。