Spec-Zone.ru › Marionette.js 2

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API