Как сохранить динамически добавленные условия в пользовательском узле в Node-RED?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить динамически добавленные условия в пользовательском узле в Node-RED?

Сообщение Anonymous »

Я работаю над собственным узлом Node-RED, который позволяет пользователям определять динамические условия на основе двух свойств: имени и возраста. Пользователи могут динамически добавлять условия с помощью кнопки, где каждое условие состоит из свойства, оператора и параметра. По умолчанию я хочу предоставить два условия (одно для имени и одно для возраста), и пользователи смогут изменить оператор и добавить параметр.
Проблема, с которой я столкнулся, заключается в том, что динамически добавленные условия не сохраняются после того, как пользователь нажимает «Готово» в диалоговом окне узла. Когда я развертываю поток и повторно открываю узел, ранее установленные условия теряются, даже если я пытаюсь сохранить их в функции oneditsave.
Вот упрощенная версия моего кода:< /p>

Код: Выделить всё

RED.nodes.registerType('condition-task', {
category: 'function',
color: '#a6bbcf',
defaults: {
name: { value: "" },
conditions: [] // Empty array for dynamic conditions
},
inputs: 1,
outputs: 3,
icon: "file.svg",
label: function () {
return this.name || "condition-task";
},
oneditprepare: function () {
const conditionList = $("#node-input-conditions");
conditionList.empty(); // Clear any existing conditions

// Populate the conditions from the saved configuration (if any)
this.conditions.forEach(condition => {
conditionList.append(createConditionRow(condition));
});

// Add new condition row
$("#add-condition").on("click", function () {
conditionList.append(createConditionRow());
});
},
oneditsave: function () {
const conditions = [];
$("#node-input-conditions li").each(function () {
const property = $(this).find(".condition-property").val();
const operator = $(this).find(".condition-operator").val();
const parameter = $(this).find(".condition-parameter").val();
conditions.push({ property, operator, parameter });
});
this.conditions = conditions; // Save to node config
}
});
HTML-шаблон:

Код: Выделить всё


[i][/i] Name
[i]

[/i] Conditions
[list]
[*]

name
age


==
!=

[i]

[/list]

[/i] Add Condition



Проблема:
После динамического добавления условий и установки значений для свойства, оператора и параметра условия не сохраняются, когда я нажимаю «Готово». " в диалоговом окне редактирования узла.
Когда я развертываю поток и повторно открываю узел, все ранее установленные условия теряются. Это происходит, хотя я пытаюсь сохранить условия с помощью функции oneditsave.
Цель состоит в том, чтобы сохранить все динамически добавляемые условия (свойство, оператор и параметр) и гарантировать их сохранение после развертывания и повторного открытия узла.Что я пробовал:
Я использовал функцию oneditsave, чтобы собрать условия и сохранить их в конфигурации узла, но изменения не сохраняются.
Я пытался заполнить условия. динамически когда диалоговое окно редактирования узла открыто, но ранее добавленные условия не отображаются после развертывания.
Ожидаемое поведение:
Динамически добавленные условия (свойство, оператор и параметр) должны сохраняться, когда пользователь нажимает «Готово» в диалоговом окне редактирования узла, и сохраняться после развертывания и повторного открытия узла.

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-node-red
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»