Можете ли вы передавать аргументы функциям в Slate?

Есть ли в приложении Foundry Slate простой способ написания функций, которые принимают аргументы в качестве входных данных, используя синтаксис руля?


person Adil B    schedule 22.09.2020    source источник


Ответы (1)


Вместо аргументов функции входные данные для функции Slate определяются ссылкой Handlebar внутри самой функции; например, чтобы получить доступ к данным из запроса внутри функции, вы можете написать:

const data = {{q_myQuery}}

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

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

Из документации (Slate › Concepts › Functions):

Библиотеки функций на уровне документа

Пользователи могут писать многоразовые функции javascript с параметрами. Это поможет в рефакторинге кода и уменьшит количество операций копирования и вставки кода в функциях. Вы также можете повторно запустить и обновить все функции, зависящие от библиотеки функций, с помощью кнопки Re-run All Function.

Доступны библиотеки JavaScript по умолчанию

Для расширенного использования функций Slate по умолчанию поставляется (начиная с Slate 2.15) со следующими внешними библиотеками JavaScript: Lodash, Math.js, Moment, Numeral и es6-shim. Не стесняйтесь использовать эти библиотеки при написании своих функций. Не используйте возможности синтаксиса ES6, если только всем пользователям не предписано использовать браузер, поддерживающий эти функции.

person Andrew St P    schedule 22.09.2020