2014-01-13 4 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

Подход Дэвида Сулька - это, безусловно, один из способов, но вы абсолютно можете передать экземпляр вокруг в Требовании, если у вас есть веские причины. В общем, имеет смысл обойти классы, но если у вас есть объект «global-ish», имеет смысл передать его напрямую.

Прежде всего, я бы начал с того, чтобы ваша капитализация была последовательной: это довольно универсальная практика, чтобы назвать классы с заглавными буквами, а также экземпляры с нижним регистром, которые заставят вас переименовать ваш файл/модуль «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, чтобы убедиться, что «классы» загружены, когда ваш код нуждается в них, чтобы не пропустить вокруг экземпляров.

Смежные вопросы