Marionette.Object
Базовый класс, от которого могут наследоваться другие классы. Объект включает в себя множество соглашений и утилит Backbone, такие как initialize и Backbone.Events.
Индекс документации
- инициализация
- события
- Удаление объекта
- mergeOptions
- getOption
- bindEntityEvents
- Основные примеры использования
Инициализация
Инициализация вызывается сразу после создания объекта и используется с теми же аргументами, что и конструктор.
var Friend = Marionette.Object.extend({
initialize: function(options){
console.log(options.name);
}
});
new Friend({name: 'John'});
События
Marionette.Object расширяет Backbone.Events и включает triggerMethod. Это упрощает для объектов отправку событий, на которые другие объекты могут подписаться с помощью on или listenTo.
var Friend = Marionette.Object.extend({
graduate: function() {
this.triggerMethod('announce', 'I graduated!!!');
}
});
var john = new Friend({name: 'John'});
john.on('announce', function(message) {
console.log(message); // I graduated!!!
})
john.graduate();
mergeOptions
Объединяет ключи из объекта options непосредственно с экземпляром. Это предпочтительный способ доступа к параметрам, переданным в объект.
Дополнительная информация в mergeOptions
getOption
Извлекает атрибут объекта либо непосредственно из объекта, либо из this.options, причем this.options имеют приоритет.
Дополнительная информация getOption.
bindEntityEvents
Помогает связать «сущность» Backbone с методами целевого объекта. Дополнительная информация bindEntityEvents.
Удаление объекта
Объекты имеют метод destroy, который отменяет привязки событий, непосредственно прикрепленных к экземпляру.
Вызов метода destroy вызовет событие «before:destroy» и соответствующий вызов метода onBeforeDestroy. Эти вызовы получат любые аргументы, с которыми был вызван destroy. Вызов destroy вернёт объект, что может быть полезно для цепочки вызовов.
// define a object with an onDestroy method
var MyObject = Marionette.Object.extend({
onBeforeDestroy: function(arg1, arg2){
// put custom code here, to destroy this object
}
});
// create a new object instance
var obj = new MyObject();
// add some event handlers
obj.on("before:destroy", function(arg1, arg2){ ... });
obj.listenTo(something, "bar", function(){...});
// destroy the object: unbind all of the
// event handlers, trigger the "destroy" event and
// call the onDestroy method
obj.destroy(arg1, arg2);
Основные примеры использования
Selections — это простой объект, управляющий выбором элементов. Поскольку Selections наследуется от Object, он получает initialize и Events бесплатно.
var Selections = Marionette.Object.extend({
initialize: function(options){
this.selections = {};
},
select: function(key, item){
this.triggerMethod("select", key, item);
this.selections[key] = item;
},
deselect: function(key, item) {
this.triggerMethod("deselect", key, item);
delete this.selections[key];
}
});
var selections = new Selections({
filters: Filters
});
// use the built in EventBinder
selections.listenTo(selections, "select", function(key, item){
console.log(item);
});
selections.select('toy', Truck);
© 2016 Muted Solutions, LLC
Licensed under the MIT License.
https://marionettejs.com/docs/v2.4.7/marionette.object.html