Node-RED:Библиотеки/node-red-dashboard/Template: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Node-RED/Панель перехода}} | {{Node-RED/Панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
Строка 6: | Строка 5: | ||
=Нода «Template»= | =Нода «Template»= | ||
Этот виджет может содержать любые корректные директивы HTML и Angular/Angular-Material. | Этот виджет может содержать любые корректные директивы [[HTML]] и [[Angular]]/[[Angular-Material]]. | ||
Ноду «Template» можно использовать для создания динамического UI- | Ноду '''«Template»''' можно использовать для создания динамического [[UI-элемент]]а, меняющего свой внешний вид в зависимости от входящих сообщений и отправляющего сообщения обратно в [[Node-RED]]. | ||
Пример: | Пример: | ||
<syntaxhighlight lang="html5 | <syntaxhighlight lang="html5"> | ||
<div layout="row" layout-align="space-between"> | <div layout="row" layout-align="space-between"> | ||
<p>The number is</p> | <p>The number is</p> | ||
Строка 21: | Строка 20: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Этот код создаст UI-элемент, который будет сообщать о том, какое число пришло в ноду в свойстве «msg.payload» – четное («even») или нечетное («odd»). Кроме того, цвет текста тоже будет меняться в зависимости от того, четное ли это число (текст окрасится в зеленый) или нет (текст окрасится в красный). | Этот код создаст [[UI-элемент]], который будет сообщать о том, какое число пришло в ноду в свойстве '''«msg.payload»''' – четное ('''«even»''') или нечетное ('''«odd»'''). Кроме того, цвет текста тоже будет меняться в зависимости от того, четное ли это число (текст окрасится в зеленый) или нет (текст окрасится в красный). | ||
Пример ниже демонстрирует, как задать для вашего шаблона уникальный ID, прочесть цвет темы, окрасить в него цифру и следить за любыми входящими сообщениями. | Пример ниже демонстрирует, как задать для вашего шаблона уникальный ''ID'', прочесть цвет темы, окрасить в него цифру и следить за любыми входящими сообщениями. | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="html5"> | ||
<div id="{{'my_'+$id}}" style="{{'color:'+theme.base_color}}">Some text</div> | <div id="{{'my_'+$id}}" style="{{'color:'+theme.base_color}}">Some text</div> | ||
<script> | <script> | ||
Строка 43: | Строка 42: | ||
Ниже – пример для отправки сообщения: | Ниже – пример для отправки сообщения: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
<script> | <script> | ||
var value = "hello world"; | var value = "hello world"; | ||
Строка 55: | Строка 54: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
В нем на экране будет показана кнопка, при нажатии на которую виджет отправит сообщение, в «msg.payload» которого будет 'Hello world'. | В нем на экране будет показана кнопка, при нажатии на которую виджет отправит сообщение, в '''«msg.payload»''' которого будет ''''Hello world''''. | ||
== Использование «msg.template» == | == Использование «msg.template» == | ||
Кроме того, вы можете задать содержимое шаблона при помощи «msg.template», что позволяет, к примеру, использовать внешние файлы. | Кроме того, вы можете задать содержимое шаблона при помощи '''«msg.template»''', что позволяет, к примеру, использовать внешние файлы. | ||
По приходу новых данных шаблон перезагрузится (если новые данные отличаются от старых). | По приходу новых данных шаблон перезагрузится (если новые данные отличаются от старых). | ||
При наличии свойства «msg.template» код в поле «Template» будет проигнорирован. | При наличии свойства '''«msg.template»''' код в поле '''«Template»''' будет проигнорирован. | ||
Можно использовать следующие иконки: [https://design.google.com/icons/ Material Design], [https://fontawesome.com/v4.7.0/icons/ Font Awesome] и [https://github.com/Paul-Reed/weather-icons-lite/blob/master/css_mappings.md Weather]. | Можно использовать следующие иконки: [https://design.google.com/icons/ Material Design], [https://fontawesome.com/v4.7.0/icons/ Font Awesome] и [https://github.com/Paul-Reed/weather-icons-lite/blob/master/css_mappings.md Weather]. | ||
Строка 73: | Строка 72: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Node-RED библиотеки}} | {{Навигационная таблица/Node-RED библиотеки}} | ||
{{Навигационная таблица/Телепорт}} | |||
[[Категория:Нода]] | [[Категория:Нода]] | ||
[[Категория:Нода Node-RED]] | [[Категория:Нода Node-RED]] |
Текущая версия от 13:35, 24 сентября 2023
Нода «Template»
Этот виджет может содержать любые корректные директивы HTML и Angular/Angular-Material.
Ноду «Template» можно использовать для создания динамического UI-элемента, меняющего свой внешний вид в зависимости от входящих сообщений и отправляющего сообщения обратно в Node-RED.
Пример:
<div layout="row" layout-align="space-between">
<p>The number is</p>
<font color="{{((msg.payload || 0) % 2 === 0) ? 'green' : 'red'}}">
{{(msg.payload || 0) % 2 === 0 ? 'even' : 'odd'}}
</font>
</div>
Этот код создаст UI-элемент, который будет сообщать о том, какое число пришло в ноду в свойстве «msg.payload» – четное («even») или нечетное («odd»). Кроме того, цвет текста тоже будет меняться в зависимости от того, четное ли это число (текст окрасится в зеленый) или нет (текст окрасится в красный).
Пример ниже демонстрирует, как задать для вашего шаблона уникальный ID, прочесть цвет темы, окрасить в него цифру и следить за любыми входящими сообщениями.
<div id="{{'my_'+$id}}" style="{{'color:'+theme.base_color}}">Some text</div>
<script>
(function(scope) {
scope.$watch('msg', function(msg) {
if (msg) {
// Делаем что-нибудь, когда придет сообщение
$("#my_"+scope.$id).html(msg.payload);
}
});
})(scope);
</script>
Шаблоны, созданные таким образом, могут быть скопированы и оставаться независимыми друг от друга.
Ниже – пример для отправки сообщения:
<script>
var value = "hello world";
// или переписываем это значение в функции обратного вызова...
this.scope.action = function() { return value; }
</script>
<md-button ng-click="send({payload:action()})">
Click me to send a hello world
// Кликни меня, чтобы отправить «hello world»
</md-button>
В нем на экране будет показана кнопка, при нажатии на которую виджет отправит сообщение, в «msg.payload» которого будет 'Hello world'.
Использование «msg.template»
Кроме того, вы можете задать содержимое шаблона при помощи «msg.template», что позволяет, к примеру, использовать внешние файлы.
По приходу новых данных шаблон перезагрузится (если новые данные отличаются от старых).
При наличии свойства «msg.template» код в поле «Template» будет проигнорирован.
Можно использовать следующие иконки: Material Design, Font Awesome и Weather.
См.также
Внешние ссылки
- Справочник Node-RED
- Справочник по Node-RED
- Node-RED
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Нода
- Нода Node-RED
- Node-RED нода
- Модуль node-red-dashboard
- Нода модуля node-red-dashboard
- Нода node-red-dashboard