Об'єкт, що описує події в шаблоне, є звичайним об'єктом JavaScript. Імена властивостей цього об'єкта є іменами подій, а значення - функціями, які будуть викликані при виникненні події.
Імена подій формуються різними способами в залежності від типу події:
.constuct.
Повний шлях до елементу даних фактично являє собою повне ім'я властивості об'єкта, починаючи від кореня моделі. Для вказання
елементу масиву використовується суфікс [].
Синтаксис:
Ці події мають фіксовані імена.
Model.load - модель завантажено.Model.unload - модель вивантажена. Жодні дії вже неможливі. Частіше за все використовується для відписки
від подій глобальної шини подій.Model.saved - модель збережено.Model.beforeSave - перед зберіганням.Аргументи для подій моделі:
this - корінь моделі даних (IRoot).model - корінь моделі даних (IRoot).caller - посилання на корінь моделі даних (IRoot) об'єкта, що викликає.
Наприклад, якщо це модель діалога, то
caller буде посиланням на модель, з якої цей діалог було викликано.
Може використовуватися для взаємодії елементом, що викликає.
Для подій Model.saved, Model.save значення завжди буде
undefined.
.construct - об`єкт сстворено.
Префікс імені події являє собою ім'я типу об'єкта. В обробнику цієї події можна доповнити
утворений елемент новими властивостями. Однак,
для цього краще використовувати механізм властивостей (properites).
.change - значення властивості змінено.
Префікс імені події являє собою повний шлях до властивості в моделі даних.
.changing - значення властивості буде змінено.
Префікс імені події являє собою повний шлях до властивості в моделі даних.
Є можливість скасувати змінення.
Аргументи для події .construct:
this - корінь моделі даних (IRoot).elem - створений елемент.prop - ім'я властивості батьківського елементу, якому буде присвоєний створений об'єкт. Має
сенс для обробників створення елементів в MapObject..changing, .change:
this - корінь моделі даних (IRoot).elem - елемент.newValue - нове значення властивості.oldValue - старе значення властивості.prop - ім'я властивості, що змінюється..changing:
Boolean - суворе значення false. Скасовує спробу змінення значення властивості. Будь-яке інше
значення дозволяє змінення.
Префікс імені для всіх подій масивів являє собою повний шлях до властивості в моделі.
[].adding - перед додаванням елементу в масив.[].add - елемент додано в масив.[].change - змінено елемент масива.[].remove - елемент видалено з масива.[].select - елемент масива обрано.
Зверніть увагу! Події будуть генеруватися тільки тоді, коли для маніпуляції з масивами використовуються засоби платформи.
Якщо масив змінюється стандартними методами (наприклад push, splice), то події генеруватися не будуть.
Аргументи для подій масивів:
this - корінь моделі даних (IRoot).arr - масив, що змінюється.elem - новий або видалений елемент..adding.
Boolean - суворе значення false. Відміняє операцію додавання елементу в масив.Описані вище події є вбудованими. Однак, ніхто не забороняє використовувати власні події, які можуть більш точно описувати бізнес-логіку програми.
Такі події генеруються методом $emit кореневого об'єкта (IRoot) і можуть мати
довільне ім'я (звісно, воно не може співпадати з системними іменами). Методом $emit також можна генерувати
і системні події.
Зверніть увагу! Модель подій в системі пов'язана з даними, а не з елементами користувацького інтерфейса. Іншими словами, події виникають тоді, коли змінюються дані. Виникнення подій жодним чином не пов'язане з користувацьким інтерфейсом. Фактично, користувацького інтерфейса може не бути взагалі.