Мануал по Bubble
  • 0. Введение
  • 1. Основы Bubble
  • 1.1 Что такое Bubble?
  • 1.2 Основные принципы
  • 1.3 Стратегии изучения Bubble
  • 1.4 Владение данными и приложением
  • 1.5 Допустимое использование
  • 2. Редактор приложения
  • 2.1 Основные разделы интерфейса
  • 2.2 Ключевые принципы
  • 2.3 Инструменты
  • 2.4 Горячие клавиши и Помощь
  • 3 Создание интерфейса
  • 3.1 Основные принципы
  • 3.2 Создание адаптивных страниц
  • 3.3 Управление с помощью условий
  • 3.4 Использование стилей
  • 3.5 Использование пользовательских шрифтов
  • 3.6 Советы при проектировании
  • 3.7 Использование шаблона
  • 4 Создание рабочих процессов
  • 4.1 Общие принципы
  • 4.2 Управление с помощью условиями
  • 4.3 Использование пользовательских процессов
  • 4.4 Советы по созданию рабочих процессов
  • 5 Работа с данными
  • 5.1 Ключевые понятия
  • 5.2 Тип Пользователь
  • 5.3 Сохранение данных
  • 5.4 Отображение данных
  • 5.5 Создание динамических выражений
  • 5.6 Пользовательские состояния элементов
  • 5.7 Вкладка Данные
  • 5.8 Конфиденциальность и безопасность
  • 6 Структурирование приложения
  • 6.1 Ключевые принципы
  • 6.2 Многостраничные приложения
  • 6.3 Элементы многократного использования
  • 7 Использование плагинов
  • 7.1 Для чего нужны плагины?
  • 7.2 Установка и использование плагинов
  • 7.3 Специальные плагины
  • 7.4 Создание плагинов
  • 8 Настройки приложения
  • 8.1 Версии приложения
  • 8.2 Личные и публичные приложения
  • 8.3 Пользовательские домены и SSL
  • 8.4 Политика паролей
  • 8.5 Визуальные настройки
  • 8.6 Язык и сообщения внутри приложения
  • 8.7 Социальные сети и SEO
  • 9 Использование API Баббла
  • 9.1 Примеры использования API
  • 9.2 Определение API
  • 9.3 Использование API
  • 9.4 Запланированные рабочие процессы
  • 9.5 Примеры и руководства
  • 10 Тестирование приложения
  • 10.1 Основные стратегии
  • 10.2 Использование отладчика
  • 10.3 Использование логов сервера
  • 11 Поддержка приложения
  • 11.1 Контроль версий
  • 11.2 Копирование и восстановление базы данных
  • 11.3 Массовые операции
  • 11.4 Комментирование
  • 11.5 Совместная работа
  • 12 Архитектура, оптимизация и ограничения движка Баббл
  • 13 Создание плагинов
  • 13.1 Редактор плагинов
  • 13.2 Основные и общие настройки
  • 13.3 Добавление API-соединений
  • 13.4 Создание элементов
  • 13.5 Создание действий
  • 13.6 Загрузка данных
  • 13.7 Публикация и контроль версий
  • 13.8 Интеграция с GitHub
  • 14 Тарифы на аренду выделенных серверов
  • 14.1 Преимущества выделенных кластеров
  • 14.2 Использование выделенного кластера
  • 15 Учетные записи, тарифы и оплата
  • 15.1 Управление учетной записью
  • 15.2 Тарифы и оплата
  • 15.3 Создание приложений на заказ
  • 15.4 Продажа на торговой площадке Баббл
Powered by GitBook
On this page
  • Создание динамических выражений
  • Конструктор выражений
  • Источники данных
  • Поиск и запросы
  • Данные из внешних API
  • Текущий пользователь
  • Результат предыдущих действий
  • Сущность родительского элемента и сущность текущей ячейки
  • Операции со списками
  • Редактирование динамических выражений

Was this helpful?

5.5 Создание динамических выражений

Previous5.4 Отображение данныхNext5.6 Пользовательские состояния элементов

Last updated 4 years ago

Was this helpful?

Создание динамических выражений

Большая часть информации, которой будет оперировать ваше приложение Bubble, будет динамической. Приложение будет получать её из базы данных или из других источников, таких как внешние API (плагины). В этих случаях вам нужно будет использовать "Конструктор выражений"/"Expression Composer", чтобы задать выражение, которое будет выглядеть как выражение в режиме редактора и заменится на получившееся значение в во время. Например, если в Редакторе вы видите "Current user's email"/"Email текущего пользователя", то в режиме работы, в зависимости от пользователя в системе это станет "username@email.com".

Конструктор выражений

Конструктор выражений - это ключевой элемент Редактора Приложения Bubble, который позволяет вам составлять выражения без ввода с клавиатуры, вместо этого выбирая нужные варианты в выпадающем меню. Система сама предложит в следующем меню опции, которые доступны в зависимости от вашего предыдущего выбора. Например, если первый элемент в выражении - "Текущий пользователь"/"Current User", то следующее меню будет предлагать такие варианты, как "вошел в систему"/"is logged in", "не вошел в систему"/"is not logged in", "email" и т.д.

Конструктор позволяет создавать сложные выражения, сочетая различные источники данных. Обратите внимание, что вычисление происходит слева направо, без приоритетов скобок.

Типы выражений вычисляются в режиме редактора, чтобы провести проверку несоответствия типов (как объяснено выше (!!!ЛНК!!!) ). Например, если вы пытаетесь отобразить email Текущего пользователя в текстовом элементе, то "Текущий пользователь"/"Current user" не подойдет, так как это не текст, а вот "Current user`s email"/"Email текущего пользователя" подойдет. Когда выражение не подходит, Инспектор сообщит об ошибке и всё выражение отметится красным.

Для того, чтобы понимать, какое значение выдаёт выражение очень полезно в режиме работы использовать отладчик. Для получения более подробной информации смотрите соответствующую секцию (!!!ЛНК!!!).

Источники данных

Источники данных это то, откуда вы получаете данные при создании динамического выражения. Это первая секция выражения.

Источники данных могут быть: поиск по базе данных, текущий пользователь, данные из внешнего API, какая-то информация со страницы или из браузера и т.д. Этот раздел описывает основные источники данных. Вы можете найти подробности в Справочнике (!!!ЛНК!!!).

Поиск и запросы

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

Поиск задаётся типом искомых данных (например, "пользователь" или "автомобиль") и, при необходимости, какими-либо ограничениями и сортировкой.

Ограничения

Вы можете задать ряд ограничений для того, чтобы сузить поиск и извлечь только те элементы, которые подпадают под ограничения. Например, вы можете найти автомобили, цена которых находится в нужном диапазоне и т.д. Настройка ограничения работает так: вы выбираете поле, к которому нужно применить ограничение, затем задаёте оператор сравнения (такой как =, <, >, включает и т.д.) и указываете значение, с которым нужно сравнивать, оно может быть как статическим, так и динамическим. Если не включать ограничения, поиск выведет все записи указанного типа, которые есть в базе данных.

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

Когда значение выражения получается пустым, ограничение игнорируется. Допустим, мы осуществляем поиск на странице автомобилей и ваши пользователям задают максимальную цену с помощью поля ввода. Если вы используете значение этого поля в качестве ограничения значения поля "цена", а пользователь ничего в него не ввел, то выведутся все автомобили (вместо того, чтобы не вывести ни одной).

Данные из внешних API

Источник данных "Получить данные по API"/"Get Data from API" позволяет получить данные от внешней службы или сервера и вывести список объектов заданного типа. Если вы добавите в ваше приложение какие-то плагины, которые предоставляют данные, вы увидите соответствующие опции выпадающего меню "Поставщик данных по API/"API provider".

У каждого API разные параметры и интерфейс предложит вам ввести нужные значения. Например, для API от Google Places необходимо ввести значение того, что вы ищете ("кафе", "ресторан" и т.д.) и адрес. Здесь, как и при поиске, вы можете использовать динамические выражения, чтобы данные из API тоже были динамическими.

Обратитесь к главе Плагины (!!!ЛНК!!!), чтобы получить больше информации по плагинам.

Текущий пользователь

Значение "Текущий пользователь"/"Current User" представляет пользователя, который в данный момент находится в системе. Оно позволяет вам получить доступ к различным полям, которые заданы в типе Пользователь, в дополнение к встроенным полям, описанным выше (!!!ЛНК!!!).

Результат предыдущих действий

В рабочих процессах, когда действие выводит какие-то данные, вам может понадобиться обратиться к результату предыдущих операций в последующих действий. Например, вы можете создать сущность типа "заказ", и вам нужен ID этого заказа, чтобы послать его письмом. Источник данных "Результат предыдущего действия"/"Result from Previous action" позволит вам это реализовать.

Сущность родительского элемента и сущность текущей ячейки

Это одни аз самых распространенных источников данных. В Bubble элементы-контейнеры могут иметь прикрепленную к ним сущность, и все вложенные элементы смогут иметь к ней доступ. Вы можете изменять сущность, находящуюся в группе с помощью редактирования поля источника данных или действием "Отобразить данные в группу"/"Display Data in group".

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

Операции со списками

В Bubble есть несколько операций, которые можно применять к спискам. В частности, вы можете сортировать и фильтровать списки сущностей. Эти действия отличаются от поисковых ограничений так как они срабатывают после того, как список получен из базы данных, и в следствие могут привести к снижению производительности. Больше про настройки списков можете прочитать в справочнике (!!!ЛНК!!!).

Редактирование динамических выражений

Редактирование динамических выражений происходит с помощью выпадающих меню. Для выбора нужного параметра вы можете пользоваться мышкой, и также можете использовать клавиатуру. Стрелочки позволят вам перемещаться по опциям, а клавиша "delete" вернет вас в выражение и удалит следующие записи.

Также у Bubble есть несколько инструментов для облегчения работы с длинными выражениями. Вы можете найти их в контекстном меню, нажав правой кнопкой мыши на выражение. В частности, вы можете копировать/вставлять выражения, вставлять динамические выражения при работе с текстовым выражением с динамической частью, или же отобразить элемент или действие, на которое ссылается выражение (если такое имеется).