2014-01-13 75 views
0

Backbonejs模型我創建了一個RequireJs模塊中的Backbonejs模型方式:更新從另一個Requirejs模塊

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

我創建一個新的模塊,我想我的更新newModel,並向

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

你有好主意嗎 ?

+0

如何要更新嗎?這很奇怪,你通常不會使用模塊來更新實例。 –

+0

包含這兩個定義調用的文件的名稱是什麼?請記住,您定義的模塊基於這些文件名。 –

回答

0

David Sulc的方法肯定是一種方法,但如果您有充分的理由,您絕對可以在Require中傳遞實例。一般來說,傳遞類是更有意義的,但如果你有一個「全局對象」對象,直接傳遞它可能是有意義的。

首先我要開始讓您的大小寫保持一致:用大寫字母命名類和使用小寫字母的實例是非常普遍的做法,這會使您將「newmodel」文件/模塊重命名爲「Newmodel :

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

有了這樣的,你可以讓你的 「newModel,並向」(小寫)文件/模塊返回實例自身的方式:

定義([ '模型/ newModel,並向']),函數(Newmodel)var newmodel = new Newmodel(); return newmodel; }

一旦你這樣做,你的看法可以通過將其在通常通過爲所欲爲到該實例要求:

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

你可能想這樣做,而不是:

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

您通常使用requireJS確保「類」當你的代碼需要他們,而不是通過各地的實例被加載。