Получение свойств уведомления

Библиотека Noty предоставляет мощный инструмент для отображения уведомлений в веб-приложениях. Помимо создания и отображения уведомлений, важным аспектом является возможность получения свойств уже созданного уведомления для динамической настройки поведения или анализа состояния.


Доступ к экземпляру уведомления

Каждое уведомление создаётся через конструктор new Noty(options), где options — это объект конфигурации. После создания уведомления возвращается экземпляр класса Noty, который содержит все свойства уведомления, включая те, что были переданы при инициализации.

let notification = new Noty({
    text: 'Успешная операция',
    type: 'success',
    layout: 'topRight',
    timeout: 3000
});

Экземпляр notification позволяет получить доступ ко всем ключевым свойствам, включая:

  • type – тип уведомления (alert, success, error, warning, info).
  • text – текст, отображаемый в уведомлении.
  • layout – позиция уведомления на странице.
  • timeout – время автоматического скрытия уведомления в миллисекундах.
  • progressBar – состояние полосы прогресса.
  • modal – булевое значение, определяющее, будет ли уведомление модальным.

Получение конфигурационных параметров

Все конфигурационные параметры, переданные при создании уведомления, доступны через свойство options экземпляра:

console.log(notification.options.text);       // "Успешная операция"
console.log(notification.options.type);       // "success"
console.log(notification.options.layout);     // "topRight"
console.log(notification.options.timeout);    // 3000

Свойство options хранит полный набор параметров, что позволяет динамически анализировать или модифицировать уведомление до его отображения.


Динамическое получение состояния уведомления

Кроме статических параметров, Noty предоставляет методы для получения текущего состояния уведомления:

  • isShown() – возвращает true, если уведомление в данный момент отображается на странице.
  • isClosed() – возвращает true, если уведомление уже закрыто.
  • getText() – возвращает текущий текст уведомления, включая возможные изменения после инициализации.
  • getType() – возвращает текущий тип уведомления.
notification.show();

console.log(notification.isShown());   // true
console.log(notification.getText());   // "Успешная операция"
console.log(notification.getType());   // "success"

Получение элементов DOM уведомления

Для работы с DOM-элементами уведомления существуют методы:

  • barDom – корневой DOM элемент уведомления.
  • closeButton – элемент кнопки закрытия (если включена опция closeWith: ['button']).
document.body.appendChild(notification.barDom);
console.log(notification.barDom);       // HTMLElement уведомления

Доступ к DOM позволяет применять дополнительные стили или слушать события напрямую на элементе уведомления.


Чтение пользовательских свойств

Noty позволяет расширять уведомления собственными свойствами, передаваемыми через options:

let notification = new Noty({
    text: 'Новая задача',
    type: 'info',
    customData: { taskId: 42 }
});

console.log(notification.options.customData.taskId); // 42

Любые пользовательские данные сохраняются в объекте options и доступны на протяжении всего жизненного цикла уведомления.


Итоговые рекомендации по работе с свойствами

  • Всегда использовать options для получения исходных конфигурационных данных.
  • Методы getText(), getType(), isShown() позволяют отслеживать текущее состояние уведомления после отображения.
  • Для работы с DOM уведомления использовать barDom и дочерние элементы.
  • Пользовательские свойства лучше хранить в отдельном объекте внутри options, чтобы избежать конфликта с внутренними параметрами Noty.

Эти подходы обеспечивают полный контроль над уведомлениями и позволяют интегрировать их в сложные интерфейсы с динамическим поведением.