Spec-Zone.ru › Marionette.js 2

Marionette.Behaviors

'Marionette.Behaviors' — это утилитарный класс, который отвечает за связывание экземпляров Behavior с их соответствующими View. Самое важное при использовании этого класса — вы ОБЯЗАТЕЛЬНО должны переопределить метод уровня класса behaviorsLookup или установить опцию behaviorClass, чтобы всё работало корректно.

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

  • API
    • Поиск Behaviors
    • getBehaviorClass
    • behaviorClass

API

Существуют два метода уровня класса, которые можно переопределить в классе Behaviors. Остальная часть класса связана с внутренними реализациями деталей представления.

Поиск Behaviors

Этот метод определяет, где хранятся ваши классы Behaviors. Простая реализация может выглядеть так.

Marionette.Behaviors.behaviorsLookup = function() {
    return window.Behaviors;
}

По умолчанию Behaviors ищутся по их ключу в хэше Behaviors определённого представления.

В этом примере (используя реализацию по умолчанию getBehaviorClass), ваш код будет ожидать, что следующие Behaviors присутствуют в window.Behaviors.DestroyWarn и window.Behaviors.ToolTip.

var MyView = Marionette.ItemView.extend({
    behaviors: {
        DestroyWarn: {
            message: "you are destroying all your data is now gone!"
        },
        ToolTip: {
            text: "what a nice mouse you have"
        }
    }
});

getBehaviorClass

Этот метод имеет простую реализацию по умолчанию, которую легко переопределить. Он отвечает за поиск отдельного Behavior внутри Behaviors.behaviorsLookup или где-либо ещё.

getBehaviorClass: function(options, key) {
    if (options.behaviorClass) {
        return options.behaviorClass;
    }

    return Behaviors.behaviorsLookup[key];
}

behaviorClass

Это свойство позволяет передать class для использования Behavior (обойдя стандартный поиск по ключу). Это полезно, когда Behavior является зависимостью представления в системе модулей, такой как requirejs или browserify. Переданные таким образом свойства будут использоваться в getBehaviorClass.

define(['marionette', 'lib/tooltip'], function(Marionette, Tooltip) {
  var View = Marionette.ItemView.extend({
     behaviors: {
        Tooltip: {
          behaviorClass: Tooltip,
          message: "hello world"
        }
     }
  });
});

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

Spec-Zone.ru

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