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

时间:2014-01-13 15:20:34

标签: 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' object here
}

你有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你可能想要这样做:

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

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

答案 1 :(得分:0)

David Sulc的方法当然是一种方法,但如果你有充分的理由,你绝对可以通过例子传递。一般来说,传递类更有意义,但如果你有一个" global-ish"对象直接传递它可能是有意义的。

首先,我首先要确保您的大小写是一致的:使用大写字母命名类,以及使用小写字母命名的实例,这将使您重命名为" newModel,并向"文件/模块到" Newmodel:

define(['model/Newmodel']), function (Newmodel) {
    var newmodel = new Newmodel();
}

通过这种方式,你可以制作你的"新模型" (小写)文件/模块返回实例本身:

define([' model / Newmodel']),function(Newmodel){     var newmodel = new Newmodel();     返回新模型; }

一旦您完成了该操作,您的视图可以通过require通常将其带入该实例:

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