Как добавить фишки / теги к свойствам узла в Node-RED - PullRequest
1 голос
/ 25 июня 2019

Я создаю узел Discord в Node-RED и хочу предоставить узлу параметры, на которые будут подписываться события Discord. В настоящее время я пытаюсь использовать чипы из библиотеки MaterializeCSS (https://materializecss.com/chips.html).

Следуя примерам на странице Материализация, вот мой текущий тип свойства:

<script type="text/javascript">
    RED.nodes.registerType('discordEvents', {
        category: 'config',
        defaults: {
            name: {value:"", required: true},
            events: {value:"", required: true},
        },
        exportable: false,
        label: function() {
            return this.name;
        }
    });
</script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script type="application/javascript">
    $('.chips-autocomplete').chips({
        autocompleteOptions: {
            data: {
                'message':null,
                'ready':null
            },
            limit: Infinity,
            minLength: 1
        }
    });
</script>
<script type="text/x-red" data-template-name="discordEvents">
    <div class="form-row">
        <label for="node-config-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-config-input-name">
    </div>
    <div class="form-row">
        <label for="node-config-input-events"><i class="icon-tag"></i> Events</label>
        <div class="chips chips-autocomplete" id="node-config-input-events></div>
    </div>
</script>

Проблема в том, что когда я загружаю библиотеку в скрипт, редактор Node-RED исчезает, и если я проверяю консоль, я вижу ошибку "[node-red / discordEvents] TypeError: $ (...). Чипсы не является функцией "

1 Ответ

0 голосов
/ 25 июня 2019

Вы не можете добавлять теги сценариев в HTML-файле узла.Вам необходимо динамически загрузить их как часть функции oneditprepare узла.

Вы можете посмотреть на узел node-red-node-geofence в качестве примера.

Для загрузки скрипта используется функция jquery $.getScript().

...