Spec-Zone.ru › Marionette.js 2

Marionette.Controller

Предупреждение: устаревшее. Объект Controller устарел. Вместо использования класса Controller с AppRouter, вы должны указать свои обратные вызовы в обычном объекте JavaScript или объекте Marionette.

Controller — это объект, используемый в маршрутизаторе Marionette. В контроллерах хранятся обратные вызовы маршрутизатора.

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

  • Основное использование
  • Удаление контроллера
  • mergeOptions
  • getOption
  • Предыдущее использование

Основное использование

Marionette.Controller предназначен для использования только в маршрутизаторе.

// Create a Controller, giving it the callbacks for our Router.
var MyController = Marionette.Controller.extend({
  home: function() {},
  profile: function() {}
});

// Instantiate it
var myController = new MyController();

// Pass it into the Router
var myRouter = new Marionette.AppRouter({
  controller: myController,
  appRoutes: {
    "home": "home",
    "profile": "profile"
  }
});

mergeOptions

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

Дополнительная информация на странице mergeOptions

getOption

Извлечь атрибут объекта либо непосредственно из объекта, либо из this.options объекта, при этом this.options имеет приоритет.

Дополнительная информация на странице getOption

Удаление контроллера

Каждый экземпляр контроллера имеет встроенный метод destroy, который обрабатывает отвязку всех событий, прикрепленных непосредственно к экземпляру контроллера, а также событий, привязанных с помощью EventBinder из контроллера.

Вызов метода destroy вызовет события "before:destroy" и "destroy", а также соответствующие вызовы методов onBeforeDestory и onDestroy. Эти вызовы будут переданы любые аргументы, с которыми был вызван destroy.

// define a controller with an onDestroy method
var MyController = Marionette.Controller.extend({

  onBeforeDestroy: function(arg1, arg2){
    // put custom code here, before destroying this controller
  }

  onDestroy: function(arg1, arg2){
    // put custom code here, to destroy this controller
  }

});

// create a new controller instance
var contr = new MyController();

// add some event handlers
contr.on("before:destroy", function(arg1, arg2){ ... });
contr.on("destroy", function(arg1, arg2){ ... });
contr.listenTo(something, "bar", function(){...});

// destroy the controller: unbind all of the
// event handlers, trigger the "destroy" event and
// call the onDestroy method
contr.destroy(arg1, arg2);

Предыдущее использование

До версии Marionette 2.1 контроллер имел другое назначение — универсальный, неопределённый объект. Это было путано, учитывая его другое использование в маршрутизаторе и его название, имеющее такое большое значение в контексте фреймворков MVC.

Начиная с версии 2.1, доступен новый класс: Marionette.Object. Мы рекомендуем использовать Marionette.Object вместо Marionette.Controller во всех ситуациях за пределами маршрутизатора.

© 2016 Muted Solutions, LLC
Licensed under the MIT License.
https://marionettejs.com/docs/v2.4.7/marionette.controller.html

Spec-Zone.ru

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