Spec-Zone.ru › Marionette.js 3

Marionette.Object

Базовый класс, от которого могут наследоваться другие классы. Объект включает в себя множество соглашений и утилит Backbone, такие как initialize и Backbone.Events. Объект обладает всеми Общими функциональными возможностями Marionette.

Индекс документации

  • Инициализация
  • События
  • События Radio
  • Удаление объекта
  • Базовое использование

Инициализация

initialize вызывается сразу после создания объекта и принимает те же аргументы, что и конструктор.

var Mn = require('backbone.marionette');

var Friend = Mn.Object.extend({
  initialize: function(options){
    console.log(options.name);
  }
});

new Friend({name: 'John'});

Пример вживую

События

Marionette.Object расширяет Backbone.Events и включает triggerMethod. Это позволяет объектам легко генерировать события, на которые другие объекты могут подписаться с помощью on или listenTo.

var Mn = require('backbone.marionette');

var Friend = Mn.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();

Пример вживую

События Radio

Marionette.Object интегрируется с Backbone.Radio для обеспечения мощных возможностей обмена сообщениями. Объекты могут реагировать на оба типа сообщений Radio: Events и Requests. Если необходимо использовать либо Events или Requests, то необходимо установить свойство channelName.

channelName: 'myChannel',
radioEvents: {
  'some:event': 'eventHandler'
},

radioRequests: {
  'some:request': 'requestHandler'
},

Пример вживую

В этом примере объект будет слушать запрос some:request на канале myChannel и запускать метод 'requestHandler'. При использовании запросов Radio с объектами также применяются те же правила и ограничения, которые предполагает обычное использование Radio: один обработчик может быть связан с запросом, либо через ручное использование функций ответа, либо через API объекта.

Удаление объекта

Объекты имеют метод destroy, который отвязывает события, напрямую прикрепленные к экземпляру. destroy возвращает объект.

Вызов метода destroy вызовет события before:destroy и destroy и их соответствующие методы.

Примечание Обработчики событий получат любые аргументы, с которыми был вызван destroy.

var Mn = require('backbone.marionette');

// define a object with an onDestroy method
var MyObject = Mn.Object.extend({

  onBeforeDestroy: function(arg1, arg2){
    // put other custom clean-up code here
  }

});

// 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 Mn = require('backbone.marionette');

var Selections = Mn.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);

© 2017 Muted Solutions, LLC
Licensed under the MIT License.
https://marionettejs.com/docs/v3.5.1/marionette.object.html

Spec-Zone.ru

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