VIKINGVyksa
@VIKINGVyksa
front-end developer

Как инкапсулировать в backbone?

При создании моделей, представлений, коллекций мы создаём их в глобальной области видимости, это же плохо?
Как инкапсулировать все это но при этом чтобы разные модули приложения имели доступ друг к другу, могли общаться?
Например вот так я могу спрятать весь код от глобальной области видимости
(function(Backbone,_){
	var User = Backbone.Model.extend({
		defaults:{
			name:'user',
			login:'почта не указана',
			pass: 'пароль не указан'
		},
		validate:function(attr){
			if(name.length < 3){
				return 'Имя содержит слишком мало символов!';
			}
		}
	});

var user = new User({name:'Vasia',login:'admin@gmail.com',pass:'root'});

})(Backbone,_);

Но при этом я не имею доступа к этому блоку кода, только если функция будет принимать какие-то параметры.
Можно скинуть код рабочего небольшого приложения, я могу сам разобраться))
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Откройте для себя настоящую модульную систему — Require.JS или Browserify. Первая гибче, зато не требует шага компиляции, ко второй больше плагинов и у нее меньше оверхед.

P.S. По хорошему, уже можно (и даже нужно) начинать писать на ES2015 и юзать тамошние модули и прочие плюшки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Используйте Marionette, там есть система модулей и много других полезных вещей.
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
var App = App || {};
App.User = Backbone.Model.extend({});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы