2012-02-02 3 views
3

Я использую Backbone/RequireJS, чтобы обеспечить мое приложение с модульностью и структурой. Одна вещь, с которой я сталкиваюсь, и был бы очень признателен за некоторые советы в этой области.Backbone/RequireJS хранение модели данные

Когда пользователь посещает страницу, первое, что происходит, это какой-то JSON, который заполняет пару моделей. Я хотел бы, чтобы эти модели были доступны, где бы я ни находился в приложении, поскольку они содержат данные и поддержку программы. Допустимо ли использовать window.modelName, или вы рекомендуете другой/лучший способ сделать это?

ответ

1

Использование вашего предлагаемого решения бросает вызов всей цели использования AMD в первую очередь. Определить модуль (назовем его глобал) как таковые:

define(function (require) { 
    var globals = function() { 
    return {}; 
    }; 
    return globals(); 
}); 

Теперь при инициализации вы можете добавить значение к нему:

globals = require('globals'); 
globals.mymodel = new MyModel(); 
mymodel.fetch(); 

Позже, и из любого другого модуля, вы может получить доступ к вашему глобальному модулю:

globals = require('globals'); 
console.log(globals.mymodel.get('myattr'); 
+0

Большое вам спасибо! Мне нужно время подумать об этом. –

+1

С удовольствием вы можете узнать больше об обосновании, если вы используете Google для шаблона Singleton или модуля. – ggozad

+0

Я думаю, что этот проект показывает мне, что я слабее, чем я думал о самом JS. Еще раз спасибо! –

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