Я начинаю с магистрали и на мгновение наткнулся на вопрос. Пример приложения, над которым я работаю, - это какой-то плейлист. У меня есть модель «песня» и сборник «Плейлист», содержащий несколько песен.Базовые общие коллекционные коллекции
Данные коллекции плейлистов должны быть доступны в нескольких представлениях. Поэтому моя идея состоит в том, чтобы иметь глобальные прикладные переменные, и одной из этих переменных может быть коллекция списков воспроизведения.
Таким образом, я могу получить песни с инициализацией приложения и получить доступ к данным во всех представлениях приложения.
Ниже то, что я делаю в данный момент
define(
[
'jQuery',
'Underscore',
'Backbone',
'collections/songlist'
],
function ($, _, Backbone, SonglistCollection)
{
var PlaylistView = Backbone.View.extend({
// properties
el: '#playlist',
collection: new SonglistCollection(),
/**
* Initialize
*/
initialize: function()
{
// load songs
this.collection.on('reset' , this.render, this);
this.collection.fetch();
},
/**
* Render
*/
render: function()
{
// loop through the collection and update the view
},
...
);
}
);
И это моя коллекция
define(
[
'Underscore',
'Backbone',
'models/song'
],
function (_, Backbone, songModel)
{
var songList = Backbone.Collection.extend({
model: songModel,
url: 'song'
});
return songList;
}
);
Как вы можете видеть, что я должен сделать новый экземпляр коллекции и повторно извлекать данные для каждого вида, где я хочу использовать данные из списка воспроизведения.
Поскольку я использую require.js, я немного потерял о том, как создавать глобальные переменные. Как мне это нравится, например. make MyApp.collections.Playlist, но я понятия не имею, как это реализовать с AMD (require.js).
Некоторые ресурсы я уже нашел, но я до сих пор потерял/запутаться/...
- Share resources across different amd modules
- http://www.alexrothenberg.com/2011/02/11/backbone.js-makes-building-javascript-applications-fun.html
Большое спасибо заранее!
Оба ответа на первый вопрос, который вы нашли, кажутся разумными. Настройте зависимость 'app_registry' какого-либо типа, чтобы сохранить ваше глобальное состояние или сделать это вручную с помощью' window.App = {...} 'где-то в вашей инициализации. –